Composer Location, exec with php, and phpArgs

I've added the ability to add a composer location, execute with php binary, and also the option to pass arguments to the php binary if using php.

I've added a load of unit tests too, and restructured how the shell command is built.

-B