Add (deterministic) BasicClock and 'demos' library

The demos library will be for end-to-end tests and demos. BasicClock is
a non-threaded clock, most useful for testing and any cases where we
don't need threads (e.g. writing to wave file)