Renaming Application as Artisan for better clarity and changed registerServiceProviders to be protected
Added alias for Artisan
Let Artisan hold its instance
Making Artisan::call($command) work! Just include bootstrap/start.php and then call any artisan command. For example

    Artisan::call('migrate:make',['name'=>'add-delete-user', '--create' => 'delete']);

will create new migration file :)