Give back to layer what is layer's, and to factory what is factory's

This PR puts all registration code near where they are defined. This would allow us to hopefully make layers more modular. For example, if we want to disable a layer, simply put an #ifdef around its cpp file (as well as its declaration).

I don't know where to put all those Creator functions, so they are still inside layer_factory.cpp. Ideally we could also create separate cpp files like conv_layer_factory.cpp and so on, but given the fact that they are all core layers, maybe it's an overkill to separate them anyway.