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']);
	}
```