Merge revel port into master

The revel port is now more feature complete than the mainline code, and revel offers many structural improvements to the code which will prove useful during development.