First working draft for a test suite

This branch contains quite a few important changes, which you may or
may not like. Please review it carefully and point out everything you
consider that needs changing with in-line comment in the commits, or in
the same pull request.

These are the very first modifications I've noticed that need to be done
in order to get a complete test suite, which will have:
1) Basic unit tests: that will test code that doesn't require any external
   communication.
2) Network-dependant unit tests: which will run some code that requires
   communcation with Mega. These unit tests will dispose of a mocking
   mechanism. In order to achieve this, we'll need to specify a very thin
   set of wrapper functions that communicate with Mega APIs. (maybe
   the currently implemented `mega.py` should suffice? I'm still looking
   into this), and then mock these wrappers.
3) Integration tests: that will *only* test the Mega's API wrappers. This
   will eventually need network connection and will probably be broken if
   changes arise in Mega's API. Therefore, this set of tests will be
   optional when running the whole test suite.

I know that I've made some huge changes, so please feel free to ask me
to stick to some rules if you have any, or personal preferences if you don't
like any these.