Allow for multiple datasets in typeaheadjs

This PR is meant to allow for multiple typeaheadjs instances to be given to tagsinput to perform autocompletion of multiple datasets at the same time, like in this example:

https://twitter.github.io/typeahead.js/examples/#multiple-datasets

You can pass an array of object rather than a single typeaheadjs object. You can still pass a single typeahead instance. 

Example:
```HTML
<script>
var nbaTeams = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.obj.whitespace('team'),
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  local:  [{ "team": "Boston Celtics" }, { "team": "Dallas Mavericks" }, { "team": "Brooklyn Nets"}, { "team": "Houston Rockets"}]
});

var nhlTeams = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.obj.whitespace('team'),
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  local: [{ "team": "Dallas Stars"}, { "team": "Los Angeles Kings" }, { "team": "Phoenix Coyotes" }, { "team": "San Jose Sharks"}]
});

nbaTeams.initialize();
nhlTeams.initialize();

$('input').tagsinput({ 
    typeaheadjs:  [{
                     name: 'nba-teams',
                     displayKey: 'team',
                     source: nbaTeams.ttAdapter(),
                     templates: {
                       header: '<h3 class="league-name">NBA Teams</h3>'
                     }
                   },
                   {
                     name: 'nhl-teams',
                     displayKey: 'team',
                     source: nhlTeams.ttAdapter(),
                     templates: {
                       header: '<h3 class="league-name">NHL Teams</h3>'
                     }
                    }]
    });
</script>
```


(For some reason, grunt seems to make other changes in the generated code. Let me know if I need to generate it with a specific version of grunt and rebase or if it is fine.)
I need the null argument because the `typeahead` function takes a first argument that is not a dataset.