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.
I didn't mean to have a singleton or service locator. I mean the one time argument shouldn't be a class property, since we can do:

```php
$obj->scanCommandsInDirectory($dir);
```

And the directory is one-time variable, we can just remove it.