override nil action handler if the form was created with one to prevent crashes if calling nil handler, as well as having to nil-check before calling
expose some functions for unit tests
added initial tests for field and form creation, validation, and submission