Generate type spec.

Just add type spec, support:
* All sclar value types (https://developers.google.com/protocol-buffers/docs/proto#scalar).
* Repeated and optional
* User defined

There is no unit tests yet, and maybe make exists tests fail. I want to know that is it useful?