Fix issue with event parents

Turns out we cannot store the event parents on the insertion point, since the
insertion point might have different event parent depending on the where the
event originated from. Instead we store the event parents on the distributed
node as an array and shift off of that when we get the event path during
dispatch.
Merge pull request #120 from arv/event-path-again

Fix issue with event parents
Implement querySelector etc
Merge pull request #121 from arv/query-selector

Query selector
Update gruntfile
Implement elementFromPoint for document and ShadowRoot
Merge pull request #123 from arv/element-from-point

Implement elementFromPoint for document and ShadowRoot
Wrap document.write

When we do a document.write we reset the lastChild_ and nextSibling_ pointers
so that next time we get lastChild or nextSibling we recompute them.

This also adds a dependency on tooltkitchen/tools to reuse the htmlSuite and
htmlTest.
Override document.write too
Merge pull request #125 from arv/document-write

Wrap document.write
Use htmlSuite and htmlTest instead of ad hoc solution
Move test files into js and html sub directories
Merge pull request #126 from arv/html-tests

Html tests
Merge pull request #127 from arv/move-tests

Move tests
Make render invalidation smarter.

We only need to invalidate if:

- This is a shadow root
- This is a shadow host
- We are changing the select property
- We are a direct child of a shadow root (this is a bit too agressive)
- We are a direct child of a shadow host
Merge pull request #128 from arv/optimized-invalidate

Make render invalidation smarter.
Force rendering before we dispatch any event

This is so that the event path will be correct when the event is dispatched.
Merge pull request #129 from arv/render-on-dispatch

Force rendering before we dispatch any event
fix tools path
readd tools submodule