Added proper grammar language parsing

The lucene query is now being parsed using a PEGjs language grammar
file. I also added support for mimetypes searches.

The PEGjs output should should be parsed using a recursive
algorithm. For now the keys are hard-coded therefore the supported
queries are limited.