= New Features

* A uuid plugin has now been added.  This plugin will automatically
  create a uuid for newly created model objects.

    Model.plugin :uuid
    Model.create.uuid => # some UUID

* Model#json_serializer_opts has been added to the json_serializer
  plugin, allowing you to override the JSON serialization options
  on a per instance basis without passing the options directly
  to Model#to_json.  This is useful if you are including the model
  instance inside another datastructure that will be serialized
  to JSON.

    obj.json_serializer_opts(:root => true)
    [obj].to_json
    # => '[{"obj":{"id":1,"name":"Foo"}}]'

= Other Improvements

* The Database#transaction :retry_on option now works when using
  savepoints.

* Calling Database#table_exists? inside a transaction will now use
  a savepoint if the database supports it, so that if the table
  doesn't exist, it will not affect the state of the transaction.

* Blobs can now be used as bound variables in the oracle adapter.

* The sqlanywhere adapter now works with database sharding.

* The Dataset#full_text_search :rank option has been fixed to order
  by rank descending instead of ascending.

* External adapters that do not support INSERT with DEFAULT VALUES
  can now override Dataset#insert_empty_columns_values to set
  the columns and values to use for an empty INSERT.

* External adapters can now implement Dataset#date_add_sql_append
  to integrate with the date_arithmetic extension.
