Added appcfg commands for manging backend instances

In order to execute "backends XYZ" [commands](https://developers.google.com/appengine/docs/java/backends/overview#Commands) the code had to be adjusted a bit.

The thing is that the backend commands have a slightly different syntax: 
  `appcfg <opts> backends <dir> <action> <args>`,
while the existing one looked like this:
  `appcfg <opts> <action> <dir> <args>`.

So I refactored the actual execution of `appcfg` into a new function (`appcfgTaskCmd`) and created two separate Tasks for each syntax: `appcfgTask` and `appcfgBackendTask`.

Furthermore some backend commands **must** receive an argument (i.e. to specify the backend) and some can have an **optional** argument. The `appcfgBackendTask` contains a flag to check for this requirement and throws an error when it's missing.

PS: the naming of the parameters was changed to reflect the [official documentation](https://developers.google.com/appengine/docs/java/tools/uploadinganapp#Command_Line_Arguments): they are now called *opts* (starting with "--") and *args*.