Change curdling.maestro to reflect the current tests

In a wild moment, I decided to try to fix a bug with no proper
tests. The fix was good enough to help me to come up with a new solution
to fix the actuall issue of choosing which versions should be installed
after the download process;

This idea is documented in the issue #13. This commit reverts the
previous change in order to make the code reflect all the tests declared
in the `test_maestro` module;

Small changes were done to the test file, but nothing actually
significant besides adding the test `test_maestro_mark_installed`.
Remember all the packages that requested a given dependency

Before this change, the `Maestro.mapping` structure was not prepared to
store all the packages that requested a given dependency. In other
words, the field `dependency_of` was just a string. Now it's a list, so
every time the maestro files a package, the package that requested that
dependency will be saved;

It's definitely more info to remember and it makes the whole memory
usage increase a little bit. However, we'll definitely need this data to
know exactly which packages can't be installed due to version
incompatibilities.
WIP: First piece of a version combiner. Refs #13