typeahead.js bloodhound support

Implemented typeahead.js [v0.10.x](https://github.com/twitter/typeahead.js/blob/master/CHANGELOG.md#0100-february-2-2014) which introduces a major API change.



because non-static inner classes have a reference to its outer class and this adds more complexities to the JVM runtime and Java Serialization