[WIP] formatter refactored

refactored date formatting functions based on #3790

fixes #2359

- removed unformat methods, they do not belong here
- removed db format, which is also not purpose of this class
- refactored the whole set of methods to be simpler and better
  maintainable

More unit tests needed.

TODO:

- [x] refactor number formatting functions
- [x] support numberformatter options
- [ ] make asSize compatible with number formatting
- [ ] make format config compatible with the datepicker extension
- [ ] unit tests for date time functoins
- [ ] unit tests for number formatting
- [x] update docs public API
- [ ] update docs protected API
- [ ] update guide
- [x] https://github.com/yiisoft/yii2/commit/f3520187d62a28d5f9d1854f47467b563e6784a6
- [x] https://github.com/yiisoft/yii2/commit/46b553f01245daba6ba6e099bb35e1ebb8d0cb7e
- [ ] CHANGELOG + UPGRADE note + rename references
The PHP [NumberFormatter](http://php.net/manual/en/class.numberformatter.php#numberformatter.synopsis) has two methods. setAttribute() and setTextAttribute(). The first sets options about the number pattern itself, e.g. grouping size, decimal and group separator, etc... text attributes are prefix and postfix for positive and negative numbers.