s/AbstractFormRow/AbstractRow.
Adding Text row.
TextTest now extends a general RowTestCase.
Adding Hidden.
Adding Checkbox.
Adding Textarea.
Adding Submit.
Adding Password.
CheckboxTest and PasswordTest extend RowTestCase.
Adding Select.
Removing old tests.
Form has newRow() and addRow().

newRow() creates a new row from a registered type. addRow() allows for
adding any type on the fly.
Updating CsrfListener to use addRow().

This means csrf prevention will work even if the row type 'hidden' is
not registered.
Simplifying checkbox.
A Row now holds its own validation rules.
Removing the ability to create new rows with setValue(s).
Form#newRow() returns the Row instead of the Form instance.
Changing how form submissions are handled.

This is far more simple and flexible. Rows can now have more control
request more than one value from the submitted values. Validation is
'built' by fetching the rules from the rows.
Removing old FormRow class.
s/RowTestCase/AbstractRowTest.