Translatable QueryBuilder with common query building logic, TranslatableRepository findTranslatable*() methods

This PR is supposed to make some common tasks easier. These tasks involve using translatable properties in QueryBuilder which is not directly possible because they are not persistent fields. Instead they should be replaced by conditional expressions which take current locale and default locale into consideration (fallback to default locale if current locale is not set).

- finding entities by translatable properties using repository:
```php
$articles = $repository->findTranslatableBy(array(
    'title' => 'some title'
));
```
- use translatable properties in QueryBuilder where clause
```php
$qb->addWhere($qb->getTranslatableFieldExpr('a', 'title') . ' LIKE "%event%"');
```
- use translatable properties in QueryBuilder order clause
```php
$qb->addTranslatableOrderBy('a', 'title', 'DESC');
```

default exception