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.

@pbouzakis I'd love some feedback from you on this work in progress learning experiment.
Thanks!