[WIP] Full content width search results

:construction: :construction: :construction: :construction: :construction: :construction: :construction: :construction: 

This introduces
- Full content width search results
- OC.Search
- icons instead of type text
- formatters and handlers for search results
- cleans up css
- uses mime instead of mime_type
- deprecates OC.search.customResults and OC.search.resultTypes
- by default only handles generic search results
- comes with formatters and handlers for `file` and `folder` types
- restores the old result template when no formatter is present for a specific type to ensure backwards compatibility

@PVince81 how do I get the mimetype icon for a file when I am in the contacts app? How do I better encapsulate OC.Search?

@jancborchardt @MTRichards UI / css input is very welcome. I wanted to get this out as the first draft to discuss it.

TODO
- [ ] better formatters and handlers for calendar, contacts, bookmarks ...
- [x] remove resultTypes and customResults
- [x] don't lazy load the search result js & css stuff to make it more themable?
- [ ] make search_lucene add hightights / snippets
- [x] ajax scrolling for results

cc @andrewsbrown @MorrisJobke
For private members I suggest to simply add an underscore before the names, by convention.
True hiding of members can be tricky and might not be worth the effort.

For the "wait until document ready part", have a look at https://github.com/owncloud/core/pull/12527, it could offer a solution for apps to register stuff before the actual classes are loaded.

It's still not a proper loading mechanism for JS