Remove duplicate value storage in FieldResult
Simplify field and form  methods

* Adds CommonFieldResult and ValidFieldResult
* Adds CommonFormResult and ValidFormResult
* Changes require methods to return 'valid' objects
Add FormResult.future
Expand Form.add to support async fields
Add AsyncInvoke
Move fluent methods to CommonField