Store Form obj in opts hash

This changes obj from being an instance variable to being a member
of the opts hash.  This means you can change it temporarily using
with_opts(:obj=>new_obj){}, which in terms simplifies the subform
implementation in the Sequel plugin by not requiring an explicit
stack of nested associations.
Use current namespace for form object inputs if :id/:name/:key is not specified

Previously, objects that didn't respond to forme_input didn't
use the current form namespace.
Store namespaces in Form opts

Instead of storing namespaces as a separate attribute, store them
in the opts, so that you can use with_opts to change the temporarily.

Additionally, add a with_obj method that takes a new object and
additional namespaces, and replaces the object and updates the
namespace temporarily.  This appends the given namespaces to the
current namespace.

Remove the Form#push_namespace and #pop_namespace private methods.
Add Form#each_obj

This iterates over an Enumerable of objects, using with_obj for
each object and yielding each object with the index to the block.

Make subform use this internally to simplify things.

This also changes with_obj to yield the obj instead of not yielding
anything.
Add a spec for object forms handling namespaces
Use #[] instead of #send to get input value for object forms if object is a hash