bundles refactoring

The goal is to be able to generate in advance the assets and not having to do them on the fly. Effectively removing node.js and npm from the production dependencies.

### Changes

Usage of the bundles:

```jinja
{% bundles "jquery.js", "invenio.css" %}
```

Definition of the bundles:
```python
# invenio.modules.mymodule.bundles
from invenio.ext.assets import Bundle

# NB: if __all__ is specified, only the bundles present
#     will be harvested by Flask-Registry.
#__all__ = ('js', 'css')

js = Bundle(
    "js/jquery.js",
    "js/jquery.fileupload.js",
    output="jquery.js",
    filters="uglifyjs",
    weight=10,
    bower={
        "jquery": "2.1.0",
        "jquery.fileupload": "latest"
    }
)
css = Bundle(
    "less/invenio.less",
    output="invenio.css",
    filters="less,cleancss"
)
```

Generating the bundles:
```console
$ inveniomanage assets build
--------------------------------------------------------------------------------
INFO in wrappers [/opt/invenio/invenio/ext/assets/wrappers.py:130]:
invenio.base.factory: jquery.js:
 - js/jquery.js
 - js/jquery.jeditable.mini.js
 - js/jquery.tokeninput.js
 - js/jquery-caret.js
 - js/typeahead.js
 - js/bootstrap.js
 - js/bootstrap-select.js
 - js/hogan.js
 - js/translate.js
--------------------------------------------------------------------------------
INFO in wrappers [/opt/invenio/invenio/ext/assets/wrappers.py:130]:
invenio.base.factory: invenio.css:                        
 - css/token-input.css                                    
 - css/token-input-facebook.css                           
 - less/base.less                                         
 - css/tags/popover.css                                   
 - css/accounts/login.css                                 
 - css/typeahead.js-bootstrap.css
 - css/search/search.css
 - css/search/searchbar.css
--------------------------------------------------------------------------------
Building bundle: jquery.js
Building bundle: invenio.css
```

## Debug mode

In debug mode, the bundles are listed in the HTML source along with the template that introduced it.

```html
<!-- base/bundles_base.html: jquery.js, invenio.js, invenio.css -->
<!-- base/bundles_base.html: less.js -->
<!-- base/bundles_base.html: require.js -->
<!-- accounts/index_base.html: jquery-ui.js -->
<!DOCTYPE html>
<html>
...
<!-- 0: less.js -->
<script src="gen/less.js"></script>
<!-- 0: require.js -->
<script src="gen/require.js"></script>
<!-- 10: jquery.js -->
...
<!-- 11: jquery-ui.js -->
...
<!-- 50: invenio.js -->
```

The bundles are collected via Flask-Registry.

### To-Do

- [x] `inveniomanage assets build` compiles the bundles
- [x] the compiled bundles are put into `/overlay/base/static` for `collect`.
- [x] drop the old `js`/`css` syntax
- [x] `inveniomanage bower` that generates a bower.json file.
- [x] fix legacy pages (bundles are expected to appear in the `<head>`)
- [x] fix `deposit` module (@jalavik)
- [x] fix `workflows` module

Closes #1767 
1: D100 Docstring missing