Drush backend for update_status engine

This backend is independent of update.module.

The governing option is `--update-backend=drupal|drush`, where `drupal` is the backend that rely on update.module, and `drush` the new one. 'drupal' is still selected by default.

This backend uses `\Drush\UpdateService\Project` (a spin off `release_info` engine) and drush file cache. It doesn't require update.module, don't do anything on the drupal database and works across drupal 6,7,8 (and probably in drupal 5 with minor tweaks).

Examples of usage:

```
drush pm-refresh --update-backend=drush
drush pm-updatestatus --update-backend=drush
```

Tests are performed on both backends.

There's still some things pending:

 * Don't store the $xml object in `\Drush\UpdateService\Project`. This prohibits serializing the object for caching.
 * Obtain update status of disabled projects. Drupal backend relies on a checkbox in the update.module settings. Drush backend goes ahead and check disabled projects always. Probably we should add an option to control this to the drush engine or the pm-updatestatus command for both engines.

I found json backend doesn't store private attributes. Also it doesn't store any reference to the object class:

```json
{
    "cid": "7-drupal",
    "data": {
        "project_status": "published",
        "error": false
    },
    "created": 1414531355,
    "expire": 1414617755
}
```

I think it is needed to implement [JsonSerializable](http://php.net/manual/en/class.jsonserializable.php) to obtain private attributes, but still don't know what's going on with the class name.