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 think this is the last part I disagree with. :)

I do treat this class as an one-time class (thus I called it an implementation class), it instantiated when ``CommandBase::autoloadCommand($path);`` is invoked, then destroyed when the call end. Next time a user wants to load commands in another directory, he makes another ``autoloadCommand`` call, and the class instantiate another object.

So, yes. $path is one-time variable passing to ``CommandBase::autoloadCommand``, since I treat the class also as one-time instance, its life-cycle equals to the object to me. So I made it a class property.