Allow association_proxies plugin to accept a block to give user control over which methods are proxied to the dataset (Fixes #660)

This gives the user complete control over which methods are sent
to the dataset instead of the array, since they can inspect not
just the method name, but the method arguments and whether or not
a block was passed.