ProfileViewController: handle (+)->Cancel
- Before it would add it anyway
- Tag 1 == Cancel, Tag 0 = OK
Remove "libraryLocation" from defaultPrefs.plist
- No longer used ever since we have multi monitored folders
ProfileViewController: prevent someone adding a profile named ""
- This would cause problems as the name is used as a key and you can't
  use a blank key
- Does this by disabling the <add> button when the name field is empty
  - Uses new IsNotEmptyString value transformer and bindings
LibraryView: fix crash upon track update (fixes #36)
LibraryAlbum: move code from dealloc->didTurnIntoFault
- Recommended by Apple for CoreData NSManagedObjects
LibraryViewAlbumCell: do alt-text and cover updating in an KVO observer
- This is more consistent with what we do with Track/Artist cells
- Also fixes a third of bug #37 (the track counts for albums)
  - the KVO observer fires when a track gets added or deleted
    so the track counts are recalculated
Travis: fix travis-artifact (see travis-ci/travis-rubies#9)
LibraryAlbum: fix segfault due to double release of _coverFetchQueue
- If album was turned into fault and so _coverFetchQueue was released
but then perhaps it faulted again, then it would try to double release
- Fix by setting _coverFetchQueue to nil upon release
Library: removed setting libraryMonitoringInitialDone in pref plist
- This is handled in the CoreData MonitoredFolder now
Fix issue where track counts in artist cell are not up to date.
- LibraryAlbums now observe changes to their own track collection
- When there is a change, it informs the parent LibraryArtist that
  'tracks' key changed for the LibraryArtist
- This triggers a new KVO in the LibraryViewArtistCell which re-updates
LibraryAlbum: fix removeObserver: crash in didTurnIntoFault:
- Cause: awakeFromFetch() is not always called immediately, so sometimes
  the self-observer is never setup. It then crashes when it attempts to
  remove the self-observer during the didTurnIntoFault (=~ dealloc)
  if it were never setup.
- Fix: keep track of whether the self-observer was setup through an ivar
  _isSelfObserverSetup. Then only do removeObserver: if the ivar is set.
- Fixes #38
Allow brew to output to stdout
Move 'reading tag fields and setting DB attributes' code to LibraryTrack

- Was previously in Library's addFileOrUpdate: function
- Makes more sense to be in the LibraryTrack model class
- Provide two new functions:
  - trackWithFileName:inContext: that creates a new LibraryTrack from a
    given filename (including reading the tag fields).
    - this can return nil if there was an error reading tags (also
      deletes the newly created object too)
  - updateFromFile: that updates the db object from the tag fields
    - this returns a BOOL for the success
Travis: only install cmake if not present and assume autotools etc.
LibraryTrack: handle track number tags that have the format "%d/%d"
- MP3 ID3v2 specification allows the TRACKNUMBER tag to be a string
  consisting of either "tracknum" or "tracknum/totaltracks"
- We now split the string by "/" and only take the first component
- Fixes #39
gitignore: Add "keys" folder
Merge branch 'master' into coredatamigrations