Review requirements

fileinfo is not a hard dependency.
make fileinfo optional requirement
add concept-behaviors.md
Allow single items to set their encoding option
Allow an item to choose if it's encoded.
add concept-components.md
Update concept-components.md
Update CHANGELOG.md
Update CHANGELOG.md
Fixes #4114: Added Security::generateRandomHexKey(), used it for various tokens and default key generation
guide WIP [skip ci]
translated docs (structure-widgets.md) to russian
Merge branch 'master' of git://github.com/yiisoft/yii2 into translation-ru-structure-widgets
Merge pull request #4115 from yiisoft/security-adjustments

Added Security::generateRandomHexKey(), used it for various tokens and default key generation
Merge pull request #4129 from slash686/translation-ru-structure-widgets

[skip ci] Translation of docs to russian (structure-widgets section)
Fixed changelog
Fixes #4127: `CaptchaValidator` clientside error message wasn't formed properly
Adjusted exception message when pdkdbf2 is set but environment isn't OK
Merge pull request #4120 from Alex-Code/encodeLabel

Allow single items to choose their encoding option.
[Uk][Guide] intro-upgrade-from-v1.md [skip ci]