Fix protoc parser

- Add service support
- Better support for filename casing
from looking at this BNF, https://groups.google.com/forum/#!topic/protobuf/HMz8YkzWEto  you cannot nest a service within a message or vice versa.  Other than the variables in_service or in_message, I don't see any difference in the code.   What am I missing?

match = SERVCIE_PARSER.match(line)
if not match:
  match = TYPE_PARSER.match(line)
if match:
  name = match(group(1))
  type_ = match(group(2))
  type_depth = _update_depth(...)
else if type_depth > 1:
  type_depth = _update_depth(...)