Calculate base of relative file.

When a Stencil file is requested using only the file name without
directory, set the base directory to './'. The current regular expession
that strips the file name does not match a file path that consists soley
of a file name.
Simplified regex for serializer closed tag fixup.

Simplified the regular expression that matches content-less tags and
removes the forward slash.
Code tidy, comments, Require.JS tidy.

This is a tidy commit. Added some comments. Rewrote some snippy
comments. Indented some code that was supposed to be indented.

Trying a different incantation for module wrapper.
Spot check in of Stencil Redux.
Deleted Modeler.
Implement value.

Implement value with the new perpetual push interface.
Implemented attributes.

Implemented attributes using the in the Stencil redux.
Merge branch `attributes` into `redux`.
Rebuild instance structure from DOM comments.

We're now able to rebuild the instance structure for values and
attributes using data stored in comment nodes in the DOM. Currently, the
comment markers store only the id of the directive that inserted the DOM
nodes. A JSON tree is exported at the end of the document that includes
the count of nodes and characters inserted. Future commits will explore
storing the instance meta information in the comment markers directly.
Merge branch `reconstitute` into `redux`.
Fix template test fixtures.

The template test fixtures are out of sync with the updates made to the
placement of data comments to accommodate muddling of the DOM by Google
Chrome.
Implement require.

Reimplemented the require mechanism. Require assigns the exported module
to a context variable. If the module exports a function, require will
invoke that function with the context as a first argument and a callback
to accept the error or value as the second argument.

The `evaluate` function has been reimplemented so that it will also
invoke a function return value as a callback. Once again, we are
asynchronous.
Copy operations before iterating through them.

In the previous commit I was experimenting with cloning the directive
tree and consuming the tree while generating the initial document,
forgetting that I need the tree when I regenerate the document. I then
reverted to creating copies of lists of operations and child directives
before iterating through them by shifting the first one off the list. At
least that's what I intended, but I neglected to to revert to using a
copy of the list of operations.
Convert to string before recording value length.

Regeneration was off. When a value directive evaluated to an integer the
character count was off since an integer has no `length` property. Now
converting the value directives value to `String` before recording its
length in the instance map.
Use path as key to update marker.

I was incorrectly using the directive id as the key into the marker map
in the directive implementations instead of the path generated by the
descent of directive tree.
Element and character count in instance comment.

Added the element and character count to an instance comment. No more
JSON embedded in a comment. As it was, I was not updating the embedded
JSON object containing the instance information on regeneration, so
serialization would not freeze the latest state of the directive tree.
Merge branch `comment-instances` into `redux`.
Correctly reconstitute instance comment path.

Fixed the reconstitute function to derive the correct instance path when
walking the DOM tree.

Also removed some unused `path` variables from the generation logic.
Merge branch `comment-instances` into `redux`.
Add template depth to path.

Correctly generate the path by adding the template depth. This allows
templates to become reentrant when we support included layouts and tag
libraries.

I changed the logic for nesting directive parts in directive paths, but
none of the tests generate nested directive paths yet, so we're not
going to see any changes. The way it was written, a value directive that
was a child of an if directive would be nested in the if directive, so
the path for the child directive would include the id of the if
directive as a parent. This isn't necessary. The value directive is
unique in the template, the if directive does nothing to distinguish it.

When we introduce an each directive, we are going to add the user
specified id to the directive part. This allows us to reuse the
directive parts for any branches, values or attribute markers within the
each block which will repeat.

If the user doesn't not provide a id for a series, we can simply use the
index of the array. I'm moving away from the notion of having Stencil
itself perform some sort of check to see if an update is needed, a
dependency system. It will be enough to push data into the DOM and have
the DOM rewrite itself.

Closes #57.