Testing - WIP
add node version requirement and exclude *.log
More WIP, split off populate_db, unit testing main
Remove old test script
Use in-mem database & clean up test files
Test adds 3 tracks to db, verifies metadata
Refactor test
Refactor test
Slight simplification to LocalStorage shim
Update mutagen dependency to 1.21

Strangely, even though 1.21 is less than 2 weeks old, version 1.20 is no
longer in the PyPI repos, so installing dependencies from
requirements.pip failed. WTF is up with that?
Add tests for the database update/creation
Working update and refactored tag data extraction

with changes based on @graue comments:

- mtime to integer (floor of the float)
- cover art working (wasn't being initialized in aggregate_metadata)
- music_dir taken out of global, so tests are working
- find existing albums in db by artist and title ONLY
add some update tests
mtime tests, small tearDown change
Test for duplicate entries after a DB update

Note: these tests are currently failing. Trying to figure it out.
DB cleanup. Don't read metadata if mtime unchanged
Fix track updating

The trick seems to be to delete changed metadata from a session,
while adding the Track object representing the new metadata.

This seems to fix the problem of multiple entries after a metadata
change.

I am still not entirely sure how the problem arose. Without this
change, creating a Track() object and never explicitly committing
it with session.add() still put it in the database.
Fix misbehaving tests

For the one that updates metadata, I added a sleep() call
to prevent the mtime from being the same.
Remove obsolete createdb command
Add a status indicator to the update command

This commit also improves documentation slightly plus a little code
cleanup.