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');
```

there is something wrong here. `isValidFromPart` check that `$dqlPartName` is equal to "from", and here in last condition there is exception that never take place (?). This is same for `isValidJoinPart`.

`$dqlPart` is checked that is instance of `Expr\...`, but meybe it should work also with strings like here:
http://docs.doctrine-project.org/en/2.0.x/reference/query-builder.html#binding-parameters-to-your-query