Clean up boost headers

I've clean up the boost includes started to use std shared pointer instead of boost ones, etc.
Also I've added missing standard headers.
Any particular reason for std::mempy over mempy.. I don't mind it - I've just never seen it before.