LOTS of new and exciting changes!

There's a lot of code to digest here Rod, but I'll highlight the major stuff:

* Added Genre to Tracks
 * I added a new table "genres" (id, name) which is reference by the "tracks" table (genre_id).
 * I did not add a web UI to browse/search by genre.  It is available in the API & indexed from track tags.

* Added support for "album-artist" to Tracks.
 * No changes to schema
 * Indexer checks if there is an album-artists on the Tracks, adds the Artist (if new) and uses the returned ID for the Album's artist_id field.  The actual artist on the track is used for the artist_id on the Track (they will be different for compilations, soundtracks).
 * If no album-artist specified, the artist is used for both
 * Required modifying a few of the SQL queries (Browser for Artist now shows Albums that the Artist appears on, but might belong to a different Artist)

* Replaced all deprecated Vector/Hashtable instances with List/Map

* Added support for param "fromDate" in API, which will show only music items (Tracks, Artists, Albums) that have been modified since the given date.
 * This allows setting a watermark when retrieving data via a mobile app (so I can keep a local copy of the library and periodically retrieve only things that have changed in the db)

* Added 'track number' field to API for Track 

* Added support for "Accept-Ranges" header to stream from arbitrary points in a track

* Various bug fixes to the cover art