Improve documentation on using other java outside of standard PATH

When using PATH to make the OS find another java executable in the PATH
before hitting /usr/bin/java, that location must be specified *before*
the default /usr/bin/
update TODO about error handling and exceptions
flake8 everything
Fix arrow keys and tab completion, broken after stdout utf8 fix.

Before d4578e1, the following happened when stdout was not connected to
an interactive terminal:

~/src/git/m2ee-tools/src (develop) 2-$ ./m2ee.py about | cat
INFO: The application process is running, the MxRuntime has status: running
INFO: Logged in users: (0) []
INFO: Application Name: M2EE Test
Traceback (most recent call last):
Using m2ee-tools version UNRELEASED
Using Mendix Runtime version 5.1.1
  File "./m2ee.py", line 1004, in <module>
    cli.onecmd(' '.join(args))
  File "/usr/lib/python2.7/cmd.py", line 221, in onecmd
    return func(arg)
  File "./m2ee.py", line 378, in do_about
    print(feedback['copyright'])
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa9' in position 10: ordinal not in range(128)

The reason is, that when the output is not a terminal, the encoding of
sys.stdout is not set. i.e. print sys.stdout.encoding returns None.

The fix in d4578e1, replacing stdout with a writer that is forced to
utf8, breaks using the arrow keys and tab completion in Cmd, at least on
my workstation (Debian Jessie). I still have no idea why.

~/src/git/m2ee-tools/src (develop) 2-$ ./m2ee.py
INFO: The application process is running, the MxRuntime has status: running
INFO: Logged in users: (0) []
INFO: Application Name: M2EE Test
m2ee(knorrie): ^[[A^[[C^[[D^[[B^[[D^[[C^[[B^[[A

So, improve the fix by only using this stdout hack when stdout is not
attached to a terminal.

Also, use locale.getpreferredencoding() instead of hard forcing 'utf8':

~/src/git/m2ee-tools/src (develop) 2-$ python
Python 2.7.6 (default, Feb 26 2014, 00:34:35)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> print locale.getpreferredencoding()
UTF-8

So long for another edition of programming using digital duct tape and
WD40. :-|
Assume yes option for stop, unpack, emptydb, restoredb.

The -y, --yes, --assume-yes option will happily cause the commands
mentioned above to be executed without asking for confirmation.

Instead if starting a new python program and importing the m2ee library,
some customers try to automate their deployment using a shell script
invoking the m2ee CLI command. While the CLI program is meant to be used
interactively, it's an accessible way of starting to do some automation.

Keep in mind that this option will only automatically answer some yes /
no questions. It will not handle more difficult issues like not being
able to start an application because there's a user with admin user role
and password '1', etc.
Rename the assume-yes option to yolo mode.

Doing so enables to make much more automatic assumptions about answers
to potential questions, in order to try to avoid any user interaction.
If yolo mode, always execute and save DDL commands
Assume yes when starting log output in yolo mode
Automatically change password 1 for admin in yolo mode

Don't ask the user to provide a new password, just change it to
something else and try to just get the runtime started.

~/m2ee-tools/src 1-$ ./m2ee.py --yolo
INFO: The application process is not running.
INFO: Application Name: Monere
m2ee(monere): start
INFO: Trying to start the MxRuntime...
ERROR: Executing start did not succeed: result: 5, message: Using
password '1' for a user with administrator user roles is not allowed.
The following admin users have password 1: [MxAdmin].
INFO: Changing password for user MxAdmin to
P4M#-OY1is,5r1Dw30h^p6><@@~5Pjn11A9UG[2y&1NF88/ZNz3{Ik5A]Ul750KDW
INFO: The MxRuntime is fully started now.
m2ee(monere):
Adjust copyright year to 2014
Merge branch 'yolo-mode' into develop
Experimental plugin for monitoring cache statistics

Adds a graph of the total amount of objects in the runtime object cache.

I have no idea about how useful this graph will be, because any action
could be running while munin is requesting the data, which could be
distorting the view in a busy application. Let's just try it.
update TODO
update CHANGES for 0.5.8
update CHANGES for 0.5.8.1
update CHANGES, NEWS for 0.5.9
Add link to github in the README
Merge branch 'develop'
set m2ee module version to 0.5.9
Merge tag 'v0.5.9' into debian

Tag release 0.5.9