Using std/boost make_shared for creating shared pointers

Using make_shared for creating boost/std shared pointers will reduce the number of allocations
I also fixed boost::function nulling issue
On my env, when compiling without ENABLE_CPP11 it leads to using boost + using _WEBSOCKETPP_NULLPTR_TOKEN_ = nullptr
This leads to comilation errors.
That ptr relates to be used for clearing std/boost 'function', so I assume, that it is a better place for the macro.
P.S.
Maybe it will be better to replace MACRO with const