Refactoring and new features

1. Extracting the work horse that does the converting to new class
ModelToArrayConverter. This class is usable stand-alone, too.
2. new function getArrayCountData on JSonActiveDataProvider to retrieve
just the count information, but not data.
3. New callback onAfterModelToArray on JSonActiveDataProvider for
optional custom extracting of data to the final json per model.
4. For convenience relations can be defined now directly with an
attributes description (instead of wrapping them into another array with
a key "attributes"