A few fixes for being able to use complex typeahead menus

+Unit tests, because :heart: 

With this pull request, you can now make something like :

    <input type="text" data-provide="typeahead" data-menu="#all-your-base-are-belong-to-me" />
    <div id="all-your-base-are-belong-to-me" class="typeahead">
        <ul class="dropdown-menu" style="display: block;"></ul>
    </div>

It wasn't possible before for technical reasons :

- The `<div>` element was overwrote (`.html()`)
- The typeahead was displayed before typing, because it is using the `display:none` of the `dropdown-menu` class. Moving this class downward in the html dom was breaking this.

It's a nice addition for a few use cases : )