New truncate and truncateWords methods

New truncate and truncateWords methods, https://github.com/yiisoft/yii2/issues/2941
Update BaseStringHelper.php

Length check.
Update CHANGELOG.md
Update BaseStringHelper.php

Updated to use mb_* functions
Test case for new truncate methods.

Test case for new truncate methods.
Add new guide upload-file

1.  UploadedFile::getInstances($model, 'file'); sees only one file if not set ```'file[]'```

```php
<?= $form->field($model, 'file[]')->fileInput(['multiple' => '']) ?>
```

2. ```$form->errorSummary(..)``` not return all errors of file attribute, but only the last.
So I had to invent.

```php
if ($model->hasErrors()) {
    echo '<pre>';
    print_r($model->getErrors());
    echo '</pre>';
}
```

So it should be?
Update BaseStringHelper.php
Update BaseStringHelper.php
Changelog update
setting writable folders in init-script

It is said, that these folders are handled already by composer.json, what is definitely true. But if I can't (or don't want to) call composer create-project command, I have to run post-create-project-cmd manually like `composer run-script post-create-project-cmd`. IMHO, it's consistent to make such preparations in init script.
no need to set writable folders for console
removed unnecessary lines regarding writable dirs
Lithuanian translation
restructured guide.
fix typo in the word Semantic
minor update [skip ci]
Merge pull request #3272 from adamaltman/master

fix typo in the word Semantic
Fix link
Merge pull request #3275 from marsuboss/fix-docs-link

[Guide] Fix link
Update console.md

corrected app dir example and removed license code from example.