base: move of remote autocomplete field

* Moves the script for autocompletion from groups module to
  base module.

* Refactoring the script as a RequireJS module that returns
  a FlightJS component.

* Adds documentation on how to use it.

Signed-off-by: Leonardo Rossi <leonardo.r@cern.ch>
I think it creates a new element for suggestions :)

An example to avoid duplicating the input could be something between those lines:

```javascript
$('input.remote-typeahead-widget').each(function(){
      var interfacefield = $(this);
      var form = interfacefield.closest("form");
      // returns the data attributes as object
      var data = interfacefield.data();

      // init Bloodhound
      var bloodhound = new Bloodhound({
        name: interfacefield.attr('id'),
        datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
        queryTokenizer: Bloodhound.tokenizers.whitespace,
        remote: {
          url: data.remote,
          filter: function(list) {
            return list.results
          }
        }
      });
      
      bloodhound.initialize();
      // init typeahead
      interfacefield.typeahead({
        highlight: data.highlight,
        minLength: data.minLength,
      }, {
        name: interfacefield.attr('id'),
        displayKey: data.value,
        source: bloodhound.ttAdapter()
      }).on('typeahead:selected', function(e, data){
        interfacefield.data('selected-value', data[data_key]);
      });

     // enable form only after a selection
     interfacefield.closest("form")
       .submit(function(e){
          if(interfacefield.typeahead('val') == ''){
               return false;
          }
          interfacefield.val(interfacefield.data('selected-value'));
      });
    });
});
```
What it does, it saves the selected value in a data attribute and when the user submits it replaces the value with the id. What do you think?