Add interfaces
Switch values and types to stacks

Since we only use post_visit_*_decl functions, types and values get
overriden, sometimes before we get a chance to see them. Such as with
annotations. With a stack for each, they don't get overriden, just
masked temporarily.
Various cleanups

* Delete more unused/commented out code (like Indent)
* Switch to string_stack (stack<String, vector<>>)
* Make finish_decl() take the same args as kj::str (via perfect forwarding)
* Switch name_fields to get_fields that does the strArray call