License fix

Chore: Added APACHE2.0 LICENSE
Chore: Fixed license link in README.md
Chore: Updated .gitignore
Major code redesign and refactor with backwards compatibility breaking features.

Chore: Updated .gitignore
Chore: Code reformat to match PSR-2 code standards
Chore: Updated code documentation
UnitTest: Updated tests to match changes in code
UnitTest: Added ArgumentTest
Chore: Updated README.md to reflect changes

! The library is now compatible with php >= 5.3
!! The library now relies on a 3rd party library (tivie/php-os-detector) to perform OS checks.
!! By default, the library no longer escapes arguments.
!! Argument object is no longer responsible for escaping itself. Command object takes care of it now
!! Argument escaping is now done JIT, when the command is about to run.
!! API: [Command] Command::addArgument() now only accepts one parameter, an Argument object.
!! API: [Command] Command::removeArgument() now only accepts one parameter, an Argument object.
!! API: [Command] Command::replaceArgument() now throws an exception if `$oldArgument` does not exist.
!! API: [Command] Command::getArgument() now only accepts an integer parameter $index that corresponds to the position of the argument in the Command object arguments array.
! Feature: [Command] Added a new method, Command::searchArgument that searches the Command object for a determined Argument given it's key or identifier.
! Feature: [Command] Added a new method, Command::argumentExists() that checks if an argument object exists in the command object
!! API: [Argument] Argument constructor now accepts only 4 parameters, 1 required ($key) and 3 optional ($value, $os, $scape)
Updated .travis.yml to test against php 5.3 too
UnitTest: removed JSON_PRETTY_PRINT for 5.3 compatibility
Added sudo: false to .travis.yml to speed up build times