Data.Sqlite: bring two generic classes from Banshee codebase

These classes were called MigoModelProvider and MigoItem but
didn't have anything specific to Migo, just generic DB &
caching related features. Therefore they are now renamed to
CacheableSqliteModelProvider and CacheableItem respectively,
and we take the opportunity to do some cleanup to them (such
as converting properties to auto-properties, remove unused
usings, adding a readonly keyword, etc.)

It's good to move them here in order to avoid unnecessary
coupling on Migo from some extensions.