Added console-input related unit tests. Slightly altered others. More method refactoring.

Console user input is now also tested for expected behaviour in certain
situations.

Some methods were altered and simplified to better fulfill the
requirement for strong coheison.

Existing unit tests were also simplified or altered. A "_" has been put
in each method name that is an unit test after the name of the targeted
method to ease readability.