Code cleanup

Removing boost::mpl namespace alias from header files

Moving class_singleton into namespace detail
Moving arg_factory selector from namespace detail into class_singleton

Cleaning up comments