Allow internal, required fields

Previously, clients would not be able to create tickets if an internal, required field existed on any of the forms presented to the user. Instead, they would be stuck at permanent validation failure because there was no data for a required field not shown.

This patch adds a feature to the form and dynamicFormEntry objects' isValid() method to receive a callable to filter which fields' errors should be added to the form's errors list. This allows for more complex validation where in some cases, validation errors should not be considered on some fields.

Fixes #45