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.
Since I don't like the Singleton or ServiceLocator like pattern, in my design I make the separation in ``CommandBase``, this class is only an implementation class, not a service entry.

I expect user should have flexibility on calling method in ``CommandBase``