FieldAccess with field types (Class<?>)

I added a feature to keep the field type (Class<?>), and to get the field type by index.
I also added a method to return the field count, which is useful to directly iterate all the fields, and without the need to get the fieldnames array. This way, the FieldAccess implementation can change without changing the iteration interface, since the .get and .set can work with indexes.