Fix protoc parser

- Add service support
- Better support for filename casing
Refactor the code
More refactoring
Added more tests
Split test case to 2 different tests
The existing parser does not understand service protos, therefore the type_depth is wrong after it sees a service definition

e.g:

message AMessage {
}
service AService {
  rpc someRpc() {}
}
message AnotherMessage {
}

AService and AnotherMessage should get source generated and should be in outer_types in this case.

This change also includes a fix for filenames with - instead of _ as the camelcasing delimiter.

e.g

twitter-service.proto --> TwitterService.java instead of Twitter-service.java

Testing Done:

Added test cases to test_protobuf_gen.py

Fixed bug: 200

Reviewed at  https://rbcommons.com/s/twitter/r/488/