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 agree with you for the high level interface, but we can't stop users from using the `CommandAutoloader` directly by themselves. 

Classes are public, they can still write their own `autoloadCommand()` method by using the `CommandAutoloader`.