Custom usage

This will fix the issue #4 along with other issues related to repeated fields and packed fields. I couldn't create a unittest for the entire example spec:

```
message Type {
	repeated int32 data = 1;
	repeated int32 extra = 2 [packed = true];
	optional int32 last = 3;
}

enum Settings {
	FOO = 1;
	BAR = 2;
}

message OtherType {
	optional Type t = 1;
	repeated Settings set = 2 [packed = true];
}
```