Enable compilation with VS2013 and later. Fixes ticket #9529

Instead of adding partially specialized class template 'slot' with dependent template argument 'SlotFunction' which doesn't work with Visual Studio compilers, get around this problem by introducing class template 'slot_impl' - much like in the "faux-variadic" code path used by compilers which don't implement variadic templates.

As a by-product, make library level-4-warning-clean.

Signed-off-by: Daniela Engert <dani@ngrt.de>