Add Model.prepared_finder, similar to .finder but using a prepared statement

This modifies Model.finder to support an option that uses a
prepared statement instead, and shares much of the same
infrastructure.  I was originally just going to document
the option, but it changes the behavior significantly enough
I think it's better to have as a separate method.

Just as in the finder case, there is a unique prepared
statement created per subclass so you can call
Sequel::Model.prepared_finder to create the method, and call
the method in a subclass to return subclass instances.