Initial check in

Main code.  Need some work, configuration, documentation, etc. but
works.