core: Group Python code in core/ directory

The main reasons for this change are:
1) Our necessity to divide production code from tests.
2) `mega` is not an intuitive name and doesn't quite explain what purpose
   this module has. Moreover, having a submodule with the same `mega` is
   a hint that makes us think this isn't a good name choice.
tests: Add first working test a test suite runner

The test added in this commit is meant to serve as an example. Please,
do not think it covers the test cases of `crypto.aes_cbc_encrypt()`.

This is a very basic test, it has no dependencies and is very straight
forward. In order to make this suite useful, we'll need some extra
complexity that allows us write tests that are as end-to-end as possible.
core/settings.py: Use a human-redable configuration file

This commit allows users specify their settings in a much more readable
way. Before this change, they needed to be specified in a Python
dictionary. Not that it's hard to modify anyway, but the less python code
intermingled with the actual configuration, the better.

Moreover, because I've started designing the test infrastructure in this
branch, which is not still finished (it lacks integration and
network-dependant unit tests), I'm going to find much easier to write
them having this way of specifying settings.
core: Update settings usage with its new API

This is necessary since the previous commit changed how the settings are
stored.
README.md: Updated with latest modifications regarding the settings

The README file shouldn't be a substitute of good documentation in code
files, but instead it's meant to be a guideline for newcomers to the
project and make it as easy as possible to set it up.