Renamed the 'canvas' variable to 'surface'.

Renaming the variable gives us room to create a new class called Canvas.
Abstract-out canvas creation into an object.

Moved canvas creation and size management into a new Canvas class.

This is the first step towards a more object-oriented architecture.
Since we create multiple canvases, and have to maintain several
module-global variables to track their properties, they are the ideal
place to start.

This commit also removes sizing code that was duplicated between
makeCanvas and resizeCanvas.
Added a basic frame for the canvas-drawing plugin.
Added methods to draw and measure text.

These methods provide a common way to draw HTML text above a canvas.

The getTextInfo method generates div HTML for text with a given font
style/class and angle, measures the element's dimensions, and saves
everything in a cache.  The drawText method takes the resulting entry,
finishes generating the inline styles necessary to position the div, and
adds the result to a buffer.  The render method dumps the buffer into an
overlay and expires unused cache entries.
Provide a way for plugins to override classes.
Moved canvas tick rendering into a plugin.

The base implementation uses the new drawText and getTextInfo methods to
draw text in HTML.  Canvas rendering has been moved to overrides of
these methods within the canvas-render plugin.
Adding a fix for the inability to set the point line width to 0. It's a bit of a hack, but it seems like an acceptable workaround.
Reorganized examples into subdirectories.

To improve organization with the increasing number of examples, every
example page is now the index of its own subdirectory, which contains
all the files specific to that example.
Renamed layout.css to examples.css.
Beautified CSS used by the examples pages.

Slightly widened the page to account for the fact that most people have
widescreen monitors these days.  Also made text larger and more legible,
and created a nice 'clipping' effect for the placeholder.
Fix plot legend padding.

Added explicit border-spacing to compensate for global removal of
padding.  Flot should really take care of this itself; layout-critical
styles shouldn't depend on the user-agent defaults.
Expand buttons to match the new page font size.
Expand inputs to match the new page font size.
Generalize placeholder styles.

Give any direct child of demo-containre the same style, so it can be
used for both #placeholder and #overview.
Pad check boxes to match the new page font size.
Add a sub-header style for per-plot labels.
Re-styled and cleaned up all the examples.
Avoid being too specific in placeholder styles.
Additional code & comments cleanup.
Fix the pie interactivity example.