Variant: separate api for type conversion fields

As described in issue #175 we decided to provide two different APIs for
individual and shared field access. One does implicit conversions and
the other one throws exceptions if the type requested is not the same
the field was encoded in.

fixes #175.
absolutely, this is listed as a high priority item on #162 I'll take a stab at it next.