Merge pull request #219 from vandenoever/typechecking

Make MetadataManager 100% typed.
Extend step translation interface to allow custom rounding

Step translation from a DOM point to a step usually results in some
rounding. The existing interface provided a simple bool flag to control
this, but this does not provide help for a caller that doesn't know
ahead of time which step is "closer" to the desired node (e.g., asking
for steps at paragraph boundaries should round within the paragraph).

This extension now allows a custom delegate that will be called with the
prev and next position to choose between rounding options.
Merge pull request #221 from peitschie/steps-rounding-control

Extend step translation interface to allow custom rounding
Add script to generate manifest.json from the scanned javascript sources.
Fix bug: readFile should be able to return strings too now.
Load classes from lib/manifest.json in an asynchroneous manner.
Do deterministic serialization of the manifest.json file.