JSONStorageManager

Big changes here.
I've implemented the Inversion of Control pattern for the storage; this
means that now we have a straightforward way to create new kinds of
storage if we want: we just need to implement the IStorageManager
interface.
I've also found the "Parcelable" bug: it was just an issue with
startActivityForResult().

Signed-off-by: Simone <hello@simonewebdesign.it>