search: facets per collection

Allows to configure independently facets for every collection

Flask-Admin module available at /admin/facetcollectionview/

Matching fixtures for demosite: https://github.com/inveniosoftware/invenio-demosite/pull/21

There is no need to recreate DB. Instead of loading the fixtures - which are the default configuration, you can add facets by the Flask-Admin module. The facets added to the default collection with id '1' will be displayed in other collections which doesn't have the facets set defined.

You need to run the updater to update your DB.

Alters: https://github.com/jirikuncar/invenio/pull/242
How `_(self.name)` is supposed to work? Do you have a big `.po` file with all the collections?

`__unicode__` should return `unicode`, doesn't it? Unless you've imported `unicode_literals` this won't be the case here.

And beware, `_(...)` can be a naughty one; e.g. in this case `"default"` (which gets translated to `"défaut"` in French) will blow up. Lemme show you why:

```python
>>> from speaklater import make_lazy_string  # this is what flask-babel uses internally
>>> fullname = make_lazy_string(lambda: u"Jiří Kunčar")
>>> "Welcome back %s!" % fullname
UnicodeEncodeError: 'ascii' codec can't encode characters in position 2-3: ordinal not in range(128)
>>> print(u"Welcome back %s" % translation)
Welcome back Jiří Kunčar
```

Note that 80% of invenio's translated string are likely to breake because of this. (According to my wild guestimate and Pareto)