Support for new plugins permissions (ACL) & Backup/Restore fixes

This implementation will allow users to introduce permissions to given resources in their plugins.

To register plugin permissions you have to add `PermissionsListener` first, where you can define plugin permissions:
e.g.:
```php
class PermissionsListener
{
    /**
     * Translator
     * @var Translator
     */
    protected $translator;

    public function __construct(Translator $translator)
    {
        $this->translator = $translator;
    }

    /**
     * Register plugin permissions in Newscoop ACL
     *
     * @param PluginPermissionsEvent $event
     */
    public function registerPermissions(PluginPermissionsEvent $event)
    {
        $event->registerPermissions($this->translator->trans('ads.menu.name'), array(
            'plugin_classifieds_edit' => $this->translator->trans('ads.permissions.edit'),
        ));
    }
}
```

First parameter of `$event->registerPermissions()` register method is some custom plugin name. Second parameter is array of permissions. Key of this array is unique permission identifier and value is permission translated label.

**Permission unique identifier:**
e.g: `plugin_classifieds_edit` is unique permission name and its structure should be as presented below to register it properly in Newscoop ACL.

```
- plugin - plugins namspace
- _<plugin_name>_ - plugin name
- <permission_name> - permission name e.g. edit, manage, delete etc.

```

To simply check if user has permission you have to do on User object: 
`$user->hasPermission('plugin_classifieds_edit');`

**Set permissions on plugin install/update**

To register permissions in Newscoop during the plugin install/update process you will need to create method:

```php
    /**
     * Collect plugin permissions
     */
    private function setPermissions()
    {
        $this->pluginsService->savePluginPermissions($this->pluginsService->collectPermissions($this->translator->trans('ads.menu.name')));
    }
```

and call it in `LifecycleSubscriber` (install and update methods) class in plugin.


**Twig Extension**
Twig extension to check user permissions in views.
Usage e.g:
```twig
{% if hasPermission('plugin_classifieds_delete') %}
   <!-- do some stuff here -->
{% endif %}
```

**AccessDeniedException Listener**
- from now on html requests will be redirected to page with message from AccessDeniedException when this exception will be thrown
- json requests will get json response message from AccessDeniedException

***Other improvements:***
- [x] - CS-5422- Backup / restore scripts are outdated and doesn't work properly
if you have getter than make it protected.