Introducing the library version of the code

In this version three major modifications were performed:
1. The main file was splited in its main functional components.
2. These new functional components are available through a new library structure.
3. The code was splited in .h (headers and definitions) and .cpp (implementations) files.

Some of the most important files were splited, including EMfields3D.h and Particles3D.h.

Some of the previous modifications are turned off, in particular those related with the debugging and profiling. These will be turned on in the following commits.

This version of the code DOES NOT CONTAIN particle injection at the boundaries nor the related field boundary conditions.