New Highlighter and DiffViewer

It is fully refactored highlighter. It does not use anymore direct access to SVG object, instead it uses pvjs.Selector to create, update and remove elements (highlights).

Highlighter style object changed into:
```js
{
  'backgroundColor': 'yellow'
, 'backgroundOpacity': 0.2
, 'borderColor': 'orange'
, 'borderWidth': 3
, 'borderOpacity': 0.9
}
```
Styles are not backwards compatible with previous version. Previous version will not fail, but old highlighting styles will not apply.

Available search options are:
* `id:a123` - search by id _a123_
* `#a123` - search by id _a123_
* `xref:ABC` - search all elements that have an xref with title _ABC_
* `xref:id:x123` - search all elements that have an xref with id _x123_
* `ABC` - search all elements that have title _ABC_

This will fix/add:
* Highlighting rotated elements
* Highlighting elements that have a specified xref
* Search by xref id or text/title

This pull request is dependent on ariutta/cross-platform-shapes#2. So it should be merged only after that issue will be closed.