Extract defining fields to adapters

Currently in every single submodule that requires additional fields in model,
we've got a conditional block for each ORM. To reduce code duplication,
a `define_field` method was added to each of ORM adapters. Now we can run it no
matter what ORM is used, and adapter will handle it.
Extract defining callbacks to adapters

Just like in case of fields, defining callbacks should be done the same way for
all adapters. This version includes basic definition that handles all currently
used in Sorcery cases
Fix issues with define_callback in DataMapper
Rename define_field and define_callback

As pointed by @kirs, these names are quite general. To avoid potential problems
they were renamed to define_sorcery_field and define_sorcery_callback
Merge pull request #568 from arnvald/extract_define_field_method

Move defining fields to adapters