Implemented view system and demo, refactor

Views are called as read-only transactions when created, and then are
called again when a Box that they read changes. They are called by an
ExecutorService, and can be set to receive either all revisions, or
only the most recent revision when they take longer to run.
Renamed RWLock.scala to Concurrency.scala and added a Lock and daemon
thread factory implementation.
Moved demos to their own package.