Dev alex restructure

Restructuring PR for commenting on.

This is an attempt at resolving #51 

If this is the way we want to go some improvements still would need to be made:

- ``mocks`` package name is slightly confusing as the clients are referred to as mocks. Perhaps a rename to ``mock_servers``.
- ``get_logger`` is residing inside ``server.base.py`` which means that we have clients importing from servers. This is pretty ugly.
- All the documentation still needs to be gone through again and updated.

@txels What do you think about this restructure? does it makes sense to you?