reafactor(): big refactoring to improve lib simplicity

Adds special 'blocks' to definition object, the following blocks are available: $extend, $hooks, $config. The README contains information about their usage.

BREAKING CHANGES: Model static methods renamed, packer/renamer config removed, add object definition blocks.

* Remove $ prefix from Model.$single, Model.$mix, Model.$isNested, Model.$inferKey, Model.$getProperty
* Replace calls Model.name by Model.identity
* DefaultPacker is now a mixin, use it as one instead of setting it using setPacker.
* Builder.setPacker is no longer available, instead override Model's pack and unpack static methods.
* Builder.setRenamer is no longer available, instead override Model's encodeName and decodeName static methods.
* References to $extend, $config and $hooks in a definition object are now treated specially.
chore(builder): adds some conventions deprecation warnings
feat(model): adds the dummy method to generate dummy resources.

Dummy resources enable static actions to use the same request, hooks and
promise chaining infrastructure found in records and collections.
feat(docs): adds section about $resolve