Fix protoc parser

- Add service support
- Better support for filename casing
Ok, maybe the rpc Foo() { } part would fool it.  If we are going to keep track of what "type" we are in, we should use a stack, not a boolean.