Hygienic names

* Make name clashes between protobuf code and user defined names less likely (partial fix for #18)
* Update for language changes (~[T] -> Vec<T>). This was quite the heroic search and replace action.