Fixes #4597: `yii\composer\Installer::setPermission()` supports setting permission for both directories and files now (qiangxue)
Add runner for all tests
Add namespaces to all tests
Use config variables instead constants. Cleanup redundant constants
Merge pull request #4671 from TriAnMan/test-runner

Provide aggregate test runner
Added runtime cleanup for Smarty and Twig tests
Fixed Smarty extension "use" function to work properly in linux environment
Added automatic generating of unique slug value to `yii\behaviors\Sluggable`
Default event for `yii\behaviors\Sluggable` with `unique` enabled changed to 'insert'.
Add note about smarty SVN
Add rest-controllers.md to translate into Russian
Translated rest-controllers.md into Russian
Merge pull request #4678 from bevalorous/master

Translated docs/guide/rest-controllers.md into Russian
Add rest-routing.md to translate into Russian
Fixes #4644: Added `\yii\db\Schema::createColumnSchema()` to be able to customize column schema used
Translated rest-routing.md into Russian
Merge pull request #4679 from bevalorous/docs-guide-russian-translation

Docs guide russian translation: translated rest-routing.md into Russian
Fixes #4673
Fixes #4371: Active form client validation wasn't working in case of two models having same named fields

When rendering multiple models in the same ActiveForm if any of the field names in the two models is the same then the corresponding attribute in the yiiActiveForm object in yiiActiveForm.js (ie $('form').data('yiiActiveForm').attributes) of the first rendered model is overwritten by the attribute of the last model causing the client-side validation for the overwritten field not to run at all. Example: given two models Car and Owner with attributes {make, age} and {name, age} then if the Car is rendered first its age attribute will not have any client validation.
Added information about format of Data column