Implement reading inline array of union

- Fix InOutPointer to treat inline arrays correctly
- Create separate base class for union types to provide native type to FFI
Make field setters use offset information

Just like with the changed getters, this avoids the need to cast the
struct, since the offset will stay the same in subclasses.
Implement writing inline array fields
Make InPointer.from_struct_array_type use Struct's byte copier
Start summarizing refactoring TODOs in TODO.rdoc for easy reference