Use a diff to do minimal DOM changes during rendering

We now render the composed tree to a RenderNode tree. After that we diff that with the real DOM tree and
based on the diff we make minimal changes.

Fixes #227