feat(util/shared_mutex): skip shared_mutex implementation if LEAN_MULTI_THREAD is not defined

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(boost): implement multi-threading support using Boost

To use Boost instead of the standard library, we must use the cmake option
    -D BOOST=ON

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(shell): add command line option to set thread stack size (only available if using Boost)

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>