Update implementation status
Remove paring down of Dataset instance variables

This was mostly for performance reasons, but from my testing it
doesn't really perform better, so there isn't a reason to change.
Make Database#dataset and Dataset#new not take options hash

Virtually nothing passes an options hash internally, and all
of the helper functions take a plain dataset and clone.
Remove some changes already implemented
Remove Database#reset_schema_utility_dataset

This is a private method with only a few internal callers,
and has been renamed.
Update implementation status
Plugins extend ClassMethods before include InstanceMethods

With the current way, ClassMethods can't override behavior
related to the loading of an InstanceMethods module.
Update implementation status
Use shared frozen default options hash

This theoretically cuts down on GC time, since ruby no longer
needs to create an options hash for each method call.  However,
more benchmarking is needed to determine if there is an overall
performance benefit.

It's also good for ensuring that the code doesn't modify an input
hash by accident.
Remove set_primary_key taking multiple arguments