search: search script as a separate file

* Moves the inline code into a separate javascript.
* Refactors the module to use AMD syntax.
* Uses mustache (hogan) templates for HTML parts.
* Updates hogan to 3.0.2 from unclear 2.0.0/3.0.0.
* Fixes the search_list to position itself according to its parent and not some element that may not exist.

```diff
  $('#facet_list').affix({
    offset: {
      top: function () {
-       var $s = $('#search-box-main'),
-       y = $s.offset()['top']
-       return y;
+       return $('#facet_list').closest('.container, .row').offset()['top']
       }
     , bottom: 170
    }
  })
```

Reviewed by @drjova and @kneczaj (Many thanks to them)