Update .gitignore and add fetch-libs.sh
Major Code Fixes
Renaming: Command => AbstractCommand + ICommand => Command
More Refactoring