Simplified and improved data persistence

New code has better maintainability, extensibility and reduces
redundancy. Moreover some corner cases are better handled:

- Moved creation database from Java to external SQL files
- Added support for upgrading database to new version
- Refactored CarteggioContentProvider to be mostly generic code
- Properly handle delete and update subset of objects
- Notification more consistent