Adds support for optional fields.

Optional fields are now represented using the scala option type. This closes #7.
You are right.

That is correct. It is how scrooge does it.