Demo is fully functional

This fairly large commit contains everything but updated tests.  My
next commit will document the changes more thoroughly and update the
test fixtures.