sonata_type_model_autocomplete form type (autocompletion for too many items)

``sonata_type_model_autocomplete`` is additional model form type for ``sonata_type_model`` and ``sonata_type_model_list`` for handling many-to-one and many-to-many relations.

It's created because ``sonata_type_model`` can't be used for too many items and ``sonata_type_model_list`` is not ideal for some use cases. 

This form type is using select2 ajax feature. 

Usage is very simple:

```php
    // e-mail is a property from related User entity, on which we will filter the data
    $formMapper->add('user', 'sonata_type_model_autocomplete', array('property'=>'eMail'));

    // or if you need to change the query, you can specify callback option
    $formMapper->add('user', 'sonata_type_model_autocomplete', 
        array(
            'property'=>'eMail', 
            'callback'=>function($queryBuilder, $alias, $property, $value){
                        $queryBuilder->andWhere($alias.'.enabled=1');
                    }));

    // there are additional options, like `url`, `placeholder`, `minimum_input_length`, `items_per_page` ... 
```

Note: I had to rename `collection` form type to `sonata_type_native_collection`, becuase `collection` is used inside this form type and I had to avoid of the add/delete buttons from native `collection` type.
I tried to avoid any BC break here, so you can use `collection` form type in FormBuilder without any change in your code.

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #1172, #1758, partially #633
| License       | MIT
|DoctrimeOrmAdmin PR | sonata-project/SonataDoctrineORMAdminBundle#296

TODO:
- [x] many-to-many support
- [x] fix collection output
The callback should accept a ``$datagrid`` object. For instance ``$datagrid->getQuery()->getRootAlias()`` might not have any sense on a REST API call.