Implement #522
Refactoring and better errors

Changes to WP_CLI::error():
- can now take an array of lines, which will be printed in a red box, similar to Composer's exceptions
- new boolean $exit param - if false will not exit(1); defaults to old behaviour

Both loggers get a new error_box( $message_lines ) function

`wp cli self-update` is now `wp cli update`
wp cli update - fix success message
update checker options

- change description of --patch and --minor
- introduce --ignore-patch and --ignore-minor
New function - WP_CLI::error_multi_line()
Merge branch 'master' of github.com:nyordanov/wp-cli into issue-522
New behat feature for `wp cli` tasks

features/cli.feature:
 - wp cli check-updates should return at least one update after version 0.0.0
 - wp cli update should perform a successful update of version 0.0.0
Add a version param to "Given a new Phar"
Move version changes to make-phar.php

- make-phar.php gains a new optional flag --store-version which defaults to false.
  The script will change the contents of VERSION only if this is true.
  This is false when building temporary Phars with custom versions for tests.

- Because of that there is a new function set_file_contents() in make-phar.php
  This is similar to add_file(), but the contents of the new file are passed
  as an argument, instead of reading them via file_get_contents()

- Behat test for building a temporary Phar with a fake version
  Also ensure that VERSION is not modified
fix whitespace
`wp cli update/check-update` arguments
More Behat tests for `wp cli update`

- from 0.14.0 with --patch
- from 0.14.0 with --no-patch
missing newline charater at the end of features/cli.feature
Merge pull request #1535 from nyordanov/issue-522

Implement `wp cli self-update`