[WIP] Redis ActiveRecord

This is WIP redis ActiveRecord support.
It has the following features:
- insert, update, delete interface is exactly the same as db\ActiveRecord
- relation, relations via (except relations viaTable because there are no tables in a key value store ;) )
- optimistic locking
- dirty attributes
- find() has the same interface as db\ActiveRecord except a few limitations. It does not support select(), from() join(), group(), having(), union()
- complex where conditions via Lua Script which is executed on redis server and will return matching records.

TODO
- [ ] support for orderBy(). should be possible to implement via Lua script on server side.
- [ ] support LIKE conditions. also possible via pattern matching in Lua script.
- [x] Refactor ActiveRelation in db\AR
      - currently ActiveRelation class is hardcoded in db\AR. redis uses its own implementation which is nearly copy&paste from the db ActiveRelation class but it extends from the custom ActiveQuery.
      - One possible soution could be an interface for ActiveRelation
      - Another solution would be to define the ActiveRelation class via static property in AR class.
      - 6133133ec0a142114dcde040b962fee8cb9eae43 adds a dependency db\AR -> redis\AR which makes it all work but needs to be refactored to remove the dependency.

A redis AR can be created like this:

```php
class Customer extends yii\redis\ActiveRecord
{
	// relation declaration is the same as in db\AR
	/**
	 * @return \yii\redis\ActiveRelation
	 */
	public function getOrders()
	{
		return $this->hasMany('Order', array('customer_id' => 'id'));
	}

	// also scopes work the same as in db\AR but with limited query options (where is fully supported)
	public static function active($query)
	{
		$query->andWhere(array('status' => 1));
	}
	// this is the only new thing. you have to define attributes and pk yourself as there is no schema in redis
	public static function attributes()
	{
		return ['id', 'email', 'name', 'address', 'status']:
	}

       // primaryKey is "id" by default, can be customized by overriding primaryKey method (can be composite key)
}
```