Refactor AppNameCommand and AppNamespaceDetectorTrait:

* Allow AppNamespaceDetectorTrait::getAppNamespace() to specify custom path allowing it to be reusable for other purpose.
* Move app namespace detection and loading of composer.json when the command is fired (and not on every artisan request).
* Hardcode AppNameCommand::$currentRoot to "app" path since the whole command rely on hardcoded $this->laravel['path'].

Signed-off-by: crynobone <crynobone@gmail.com>
Merge pull request #5907 from crynobone/patch/app-name-root

[5.0] Refactor AppNameCommand And AppNamespaceDetectorTrait