[Core] Do not start if some services are broken.

Core will now try to start all services and if any of them have failed to start, then it will
gracefully shut all the other services down and terminate with an error message.
[API] Simplified shared component factories.
[ASIO] Simplified the port mapping interace.
[ASIO] Do not log stuff that doesn't happen.

Do not spam logs about waiting for outstanding operations if there're no operations.
[File Storage] Simplified remove() a bit.
[General] Add more constant specifiers around.
[General] Simplified synchronized<T>::apply().
[General] Simplified Runtime signal handling.
[General] Codestyle and comments.