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.
Why `List.flatten`? Maybe the code below should use `Enum.flat_map/2` instead?