Merge branch 'hotfix/requirements'

Close #1
Usability: Added better error reporting when a command is called with the correct name, but with wrong arguments.
Merge pull request #2 from slaff/master

Usability: Added better error reporting when a command is called with th...
[#2] Wrote unit tests, and fixed logic

- Wrote unit tests to ensure that expected output is written, using test spies
  (see http://blog.lyte.id.au/2014/03/01/spying-with-phpunit/ for the approach).
- Modified `RouteCollection` to add a `getRoute()` method; simplifies logic
  required for displaying usage message for a single route. Returns `null` if
  route is unknown.
- Modified logic from PR to pull the `$name` only if no route was matched, and,
  if the `$name` matches a known route, will then call
    `showUsageMessageForRoute()` with the named route, returning a status of 1.
[#2] Detailed naming conventions

- Detailed that commands and route names should have a 1:1 relation in order to
  facilitate the help system.
Merge branch 'hotfix/2' into develop

Forward port #2