For #282

Allow typed read only classes
For #326

Add support for tuples
Fixed EnumTypeConverter

The changes to allow tuples resulted in this code breaking in its
previous version.