Form Helper

This is a WIP, please feel free to comment or suggest changes. An end goal for
me to is have something like
[SimpleForm](https://github.com/plataformatec/simple_form/) so hopefully
@josevalim will have some thoughts.

This will also rely heavily on the `Resource` protocol discussed in #320.
It seems very weird to assume behaviour about forms, method and so on down here. Maybe this function should be left clean and the related helpers should instead pass this information down?