Changed the way data is set - this is a build breaking change.

- changed isRequest prop to is_request method
- set_data (and init) no longer mix set data with default data.
- added mix_data_with_default method
- added include_hidden flags to get_default_data and get_field_names
- added test for incomplete set_data
added test set for field array tests (incomplete yet).