Add support for registering AMD module paths to template store

To handle the asynchronous nature of loading remote templates, this
introduces a top-level `c.ready()` function that takes a function to
execute once Cilantro is deemed ready. This encapsulates checking for
all the asynchronous operations Cilantro performs prior to being ready
to open a session.

Fix #407