More usable db cache

Added more useful methods for caching db queries. Now you can use global cache settings and also local settings of particular ```yii\db\Command```, ```yii\db\Query``` and ```yii\db\ActiveQuery``` instances.

For example:

app/config/db.php:
```php
	return [
	    'class' => 'yii\db\Connection',
	    ...
	    /* Global settings for cache */
	    'enableQueryCache' => true,
	    'queryCacheDuration' => 86400,
	];
```

In any code:
```php
	public function getTestObjects()
	{
		/* Cache query on 10 seconds */
		return Test::find()->cache(10)->where(['status' => 1])->all();
	}

	public function getStatuses()
	{
		/* Cache query on 100000 seconds */
		return Yii::$app->db->createCommand('select * from statuses')->cache(100000)->queryAll();
	}

	public function getAny()
	{
		/* Cache query on 86400 seconds, use global settings */
		return Any::findAll(['any_param' => 'any_value']);
	}
```