Added a FieldView interface which must be implemented by field
renderers. The form's main view will look for FieldView implementations
to determine how to render specific field types. The only exception are
hidden fields, which are handled separately.
Form controllers are now able to return something other than true or
null. Whatever is returned by the form controller will be passed on by
the form if it isn't a boolean.
Added an e-mail validator to the form package. The validator is really
primitive and will only accept a small subset of email addresses, but I
needed one *now*.
It is possible to create a field validator that will make an exception
from the minimal length if the string is empty. And by "make an
exception", I don't mean "throwing one".
When this code was written, it did not include an internal URL mapper
and each page was loaded by a PHP script. The internal URL was a recent,
mostly unfinished addition.
Base URL is now supported:
* for views, when they implement the BaseURLAware interface (a base
class that does what most views will do with that is provided -
BaseURLAwareView),
* in the menu,
* in form actions,
* in boxes (for buttons, and for the contents if the inner view
implements BaseURLAware).