Merge pull request #362 from vandenoever/odtcursor

Remove circular dependency between OdtDocument and OdtCursor.
Make gui.Caret, gui.UndoManager and ops.Operation 100% typed.
Make gui.TrivialUndoManager and gui.UndoStateRules 100% typed.
Merge pull request #365 from vandenoever/typing

Add more typing information to some classes
Adapt PullboxOperationRouter to batch processing signals

Missing from 26a9252edbe9295fc1c2f027096d6d2f22ea6f52
Merge pull request #366 from kossebau/fixBatchSignalsWithPullbox

Adapt PullboxOperationRouter to batch processing signals
Reduce visible caret flicker when caret transitions from large to small

There are significant performance costs with calculating the caret
size, so still want to avoid computing this until all ops have been
performed. However, if the caret size is wildly incorrect for it's new
position after an update (e.g., caret moving from beside an image to
beside text), the caret will be user visible before the render occurs,
and results in a large caret momentarily flashing before shrinking to
an appropriate size. To prevent this flicker, we hide the caret until
it is redrawn, as an absent caret is far less noticeable than an
oversized one.
Merge pull request #369 from peitschie/reduce-caret-flicker

Reduce visible caret flicker when caret transitions from large to small
Remove unmaintained adapter to nowjs-based server
Merge pull request #367 from kossebau/removeUnmaintainedNowjsServerAdapter

Remove unmaintained adapter to nowjs-based server
Create direct linking between matching annotation and annotation-end elements
Fix incorrect (by pattern) check of compareDocumentPosition result
Merge pull request #359 from kossebau/linkAnnotationEndToStart

Create direct linking between matching annotation and annotation-end elements
Automatically update karma.conf.js.
When javascript files are changed, removed or added, the build system will
update karma.conf.js.
Automatically update karma.conf.js.
When javascript files are changed, removed or added, the build system will
update karma.conf.js.
Merge pull request #370 from vandenoever/updateKarmaConf
Add support for asynchronous loading of classes.

Dependencies between classes are listed in the manifest.json files.
These files list what classes are required to load other classes. Yet, each eval
of a class can trigger loading of a required class. This means that the request
for a particular class is only sent out when the class that needs it is loaded.

This patch adds a new function:
    runtime.loadClasses(classNames, callback);

This function creates a list of all required classes before doing any loading.
If the environment is the browser and a callback is provided, the list of files
is added as <script/> tags to the DOM. This means the browser can request all
files at once. The callback is attached to the onload trigger of the last
<script/> tag.

If no callback is provided, the files are still loaded synchronously.

runtime.loadClass is still present but redundant, since the runtime already
knows what classes are needed for other classes.

odf.html is adapted to use the new class.
Remove loadClass calls from class files. The load system reads the dependencies from the manifest.json files now.