Command autoloading feature

This PR actually mix with 3 stuffs.

  - Command autoloading feature
  - A bug fix when throwing an ExecuteMethodNotDefinedException
  - make ProgramName of an Application be its sufficient part of $argv[0] only

I can re-organize it if you want.
And as you expected, users can still call autoload like this:

```php
public function init()
{
    $this->autoloadCommand();
    $this->autoloadCommand($anotherDirectory);
    $this->autoloadCommand([ $anotherDirectory, $fooDirectory]);
}
```