WIP: behaviors refactoring

See https://github.com/yiisoft/yii2/pull/2269 and https://gist.github.com/lucianobaraglia/8d184cd9b9c7505a0b24

Usage example:
```php
public function behaviors()
{
	return [
		// arbitrary attributes and values
		'attributestamp' => [
			'class' => 'yii\behaviors\AttributeStampBehavior',
			'attributes' => [
				\yii\db\ActiveRecord::EVENT_BEFORE_INSERT => [
					'expires_at' => function() {
						return date('Y-m-d H:i:s', strtotime("+30 days"));
					},
					'created_by_name' => isset(\Yii::$app->user->identity) ? \Yii::$app->user->identity->username : 'n/a',
				],
			],
		],
		// default implementation, sets `created_at` and `updated_at` with `date('Y-md H:i:s')`
		// also, `format` could be configured here
		'timestamp' => [
			'class' => 'yii\behaviors\TimestampBehavior',
			'format' => 'Y-m-d',
		],
		// this will fill `created_by` and `author_id` with the behaviors default value on insert
		// and `updated_by` on update
		'blameable' => [
			'class' => 'yii\behaviors\BlameableBehavior',
			'attributes' => [
				\yii\db\ActiveRecord::EVENT_BEFORE_INSERT => [
					'created_by',
					'author_id',
				],
				\yii\db\ActiveRecord::EVENT_BEFORE_UPDATE => [
					'updated_by',
				],
			],				
		],
	];
}
```