Add basic Dapaas layout

Obviously needs correct branding and stuff, but it's a start. I've refactored the menu generation stuff with some metaprogramming, which may need looking at to make sure I'm not doing something really horrible (I quite like it though).