Restructured the flipper and its storage modules to make the storage
notify the flipper on changes, instead of the flipper running a timer
that drives the storage. This frees the storage implementations to
update on their own schedules & their own means. Specifically, this
means the file storage module can use fs.watch() to notice changes.

Updated unit tests to match. Added a unit test for the file watching.
The unit tests need a bit of restructuring still.
Clean up after the file watcher test, & restructured the test to
be simpler. Also not to fail if the file isn't there to start with. Doh.
Merge pull request #1 from ceejbot/file-watcher

the file storage now watches the file for changes