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 another method `autoloadFromDirectory($dir)` for users want to autoload from a specific directory.
- And this method `autoload` can get the current command directory from `getDefaultCommandPath()` and pass the directory path string to the same method `autoloadFromDirectory($dir)`, then we can use the same code to autoload.