Allow lambda procs with 0 arity as virtual row blocks on ruby 1.9

Previously, such blocks did not work, because the blocks would be
instance_evaled, which passes an argument, and lambda procs with
0 arity would raise an error in that circumstance on ruby 1.9+.

Now that Sequel no longer supports ruby 1.8.6, switch from
instance_eval to instance_exec, making such procs work.

For compatibility with ruby 1.8.7, make Sequel::BasicObject
respond to instance_exec on ruby <1.9.
Define respond_to_missing? where method_missing is defined and the object supports respond_to?

There are a couple of other places in Sequel where method_missing
is used, but those places do not support respond_to?, so defining
respond_to_missing? doesn't make sense for them.
Make Database#copy_into raise a DatabaseError if the database signals an error in the postgres adapter

Previously, such errors were swallowed by accident.