core - adding search criterias

Adding the ability to search by downloadable / dynamic datas, e.g. if
the user has rights on several groups, retrieves MDs that have only
downloadable and/or dynamic resources belonging to the groups list.

Example:
- User is member of group 1,2,3

- he triggers a search for MDs downloadable / dynamic

- the form is posted with the following extra parameters:
  <operation>download</operation>
  <operation>dynamic</operation>

- This is translated into the LuceneSearcher class by:
  <operation_download>1 or 2 or 3</operation_download>
  <operation_dynamic>1 or 2 or 3</operation_dynamic>

- Then translated by the Lucene Query Builder as:
 +(_op1:1 _op1:2 _op1:3) +(_op5:1 _op5:2 _op5:3)

Unit tests have been added to validate the approach into
LuceneQueryTest.
core - adding search criteria

Making the previous commit more generic, it is now possible to query on
other operation fields, e.g. to get every MD that the current user is
able to edit (EDITING), using operation=editing for instance.

The user input sanitization is left to the code before LuceneQueryInput
class is called, and is made into LuceneSearcher.

Test suite has been updated consequently, runtime tests OK as well. No
UI modifications have been made, since the default interface is subject
to rework currently.
Merge pull request #572 from pmauduit/download_or_dynamic_search_criteria

Adding operation-related search criteria