Modularize code & flesh out artists as their own objects.

This merge not only separates the code but adds features for adding/editing artists as objects that can be associated with albums.