Typeahead support for multiple and bloodhound

I think this modification covers all the cases. To declare Bloodhound sources, you must provide a 'name'.
Example of the datasets configuration:
```
'datasets' => array(
    array(
	    'source' => array(
		    'name' => 'Ajax source',
		    'datumTokenizer' => "js:Bloodhound.tokenizers.obj.whitespace('value')",
		    'queryTokenizer' => "js:Bloodhound.tokenizers.whitespace",
		    'remote' => '/index.php?r=site/lookFor&term=%QUERY'
	    ),
    ),
    array(
	    'source' => array('Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California',
		    'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia',
		    'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas',
		    'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts',
		    'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana',
		    'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey',
		    'New Mexico', 'New York', 'North Dakota', 'North Carolina',
		    'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island',
		    'South Carolina', 'South Dakota', 'Tennessee', 'Texas',
		    'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia',
		    'Wisconsin', 'Wyoming'
	    ),
    )
),
```
or simply one dataset:
```
'datasets' => array(
    'source' => array(
	    'name' => 'Ajax source',
	    'datumTokenizer' => "js:Bloodhound.tokenizers.obj.whitespace('value')",
	    'queryTokenizer' => "js:Bloodhound.tokenizers.whitespace",
	   'remote' => '/index.php?r=site/lookFor&term=%QUERY'
    ),
),
```