Add tesseract.cursor

Define separate namespace for cursor functions. We will need to access cursors
in namespaces where it may not make sense to require tessseract.component, such
as tesseract.attrs
Store listeners (event handlers) when processing attrs
Include old values in build-attrs

We will need to handle removing old listeners and such when building attributes.

Adding old-value to signature of tesseract.attrs/build-attr.

Going in this direction instead of creating individual multimethods for
adding, removing, and updating to avoid redundant logic and larger footprint of
attr handling.