Make the waffle code actually work.

When doing an @BindBean binding, the waffle code will always select
the ObjectArgument unless an explicit Argument was bound. This is
actually a big deal for some databases.

Make the Foreman look at the type of the object passed in (if not null)
when the requested type is Object and return a more specific Argument
if available.