Opens the DeepNetwork interface for adding new layers

Opens the DeepNetwork interface for adding new layers, 
that are not provided by OpenANN itself. 
(Users can implement new layers now and add them to OpenANN's DeepNetwork)

This commit also provides some small refactorings within DeepNetwork.