feat(Gruntfile): Add task `grunt changelog`

Tasks generate CHANGELOG.md according to current release commits

For more details please see
- `Gruntfile.js`
- https://github.com/ajoslin/conventional-changelog/blob/master/CONVENTIONS.md

Also uses in  task `grunt release:prepare`
Added forgotten call `grunt.loadNpmTasks('grunt-conventional-changelog');`
refactor(Gruntfile): refactor for `grunt before-test` task
feat(Gruntfile): Add task `grunt isClean:branchName`

Task checks if specified branch clean
feat(Gruntfile): Add task `grunt release:push`
chore(CHANGELOG): Added empty CHANGELOG.md
feat(Gruntfile): Add helper task `grunt isGhPagesBranch`

Task checks if local branch `gh-pages` exists, if not runs:

`git branch gh-pages origin/gh-pages`
fix(Gruntfile): names changed for tasks `isGhPagesBranch`, `isClean`

`isGhPagesBranch` to `is-gh-pages-branch-exist`

`isClean` to `is-clean`
chore(Gruntfile): removed white spaces
chore(Gruntfile): fix description for `release:complete` task
docs(CONTRIBUTING): add new sections

Add section:
- Git Commit Guidelines
  - Commit Message Format
- Documentation generation
- Release