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.
Add a comment for this line?

```
// for application commands, they are located in `App\Command\*`
// for subcommands (commands belongs to command), they are located in `App\Command\FooCommand\*`
```