Major refactoring

1. Divided the project in 4 parts: (1) Common (where all the commonly
used code like FileManager is), (2) Storage (where everything related to
the storage of application packages go), (3) Patcher (where everything
related to the actual patch construction go; e.g. algorithms), (4)
Experimenter (this is the API that allows you to do use the rest of the
application).
S-01007. Storage refactoring.

1. Divided StorageManager in non-static StorageManager (provide all the
clients functionality) and static StorageOperations (all the internal
functionality).