Implemented the ability to edit library items:
1) Changing the artist node will change the metadata of all its
children. This will then cause the update in the database and
re-arranging of the library items. This can be a bit slow...requires 1
database access per song, 1 node deletion per song, and 1 node addition per
song. Maybe I'll optimize this...since this uses the same method as
changing just one song node.

2) Changing the song node will change the metadata of one song, and this
node will be re-arranged in library and database. Pretty fast.

------
Issues:
1) Syncing library metaData change with playlist database change. Should
add a hook that looks into the absFilePath field of the playlist. Order
O(N) on the number of songs changed.

2) Optimize changing artist in batch?

3) Many cosmetic issues outlined by April.

-----
Todo:

1) Playlist support, making another table that remembers the path of the
playlist .m3u files.
2) The m3u files include the path of its member files.
3) Open and Save
4) Display the playlist name

5) Search box...proxy model???