Show Textareas button selected with id not tag name

want other buttons!
Add dynamic rendering performance test #fuglyfast

fugly quick-and-dirty duplicate code, but whatever

for simple LaTeX like 'a=6.8' (I'm working on slider performance so),
the first sigfig tends to converge pretty quickly, like after a dozen
trials or less
Fix $.fn.prepend to not always be different

only when #show-textarea-button is pressed
First pass logging LaTeX rendering performance #profiling

intro.js:
  log (global within MathQuill, defaulting to noop)
publicapi.js:
  $.mathquill.setLogFn
test/visual.html:
  timeAndLog
publicapi.js (cont'd):
  logged .mathquill('latex', latexString)
rootelements.js:
  logged RootMathBlock::renderLatex
cursor.js:
  logged Cursor::writeLatex
math.js:
  logged MathElement::finalizeInsert
commands.js:
  logged SupSub::finalizeTree
  logged Fraction::finalizeTree

Typical log results on my Mid 2010 MacBook Pro:
https://gist.github.com/laughinghan/5938498
Inline RootMathBlock::renderLatex #optimize

Typical profiling logs: https://gist.github.com/laughinghan/5938581

~12% reduction in total time, mainly from there just being one jQize DOM
call rather than jQize-ing and then inserting before the cursor.
Don't show cursor in RootMathBlock::renderLatex #optimize

Just gets hidden again immediately afterwards in
.mathquill('latex', str)

Tiny perf bump, typical resulting profiling logs:
https://gist.github.com/laughinghan/5938615
Separate out root block DOM node from container DOM node #optimize #scary

We can get a perf bump by not making the redundant DOM calls to detach
the textarea and prepend it again, by making the textarea span and the
root block span siblings, rather than the textarea span always being the
first child of the root block span.

Typical profiling log results:
https://gist.github.com/laughinghan/5938626

This is kind of a scary change because the root node code is kind of
messy, I was way surprised how easy it was.

Turns out to also be much more elegant: The root block used to be the
only exception to the invariant that a block's DOM node has as its
children exactly the DOM nodes of the block's children in the edit tree.
The invariant being universally true removes an ugly special case from
Cursor::insAtDirEnd.
s/jQ/container/ within createRoot #rename

Because it's the container DOM node, as opposed to the root block's DOM
node.
jQize traverses DOM directly instead of with jQuery

getAttribute is a mess but should work for this case
http://reference.sitepoint.com/javascript/Element/getAttribute

jQize (and hence overall) perf bump by about 0.2ms, typical profiling
log results: https://gist.github.com/laughinghan/5939356
Fixing improper css that causes ugly font.
Make auto-npm install's when package.json changes

Using empty target trick (see comment)
Make creates build/ if not there, rm from git

Same empty target trick as parent commit
README now says just need to install Node and make
Show Textareas button selected with id not tag name

want other buttons!

(cherry picked from commit aec8ed02dae67bd14d907fd5720ef6c6dd73d536)
Make visual tests' "Show Textareas" way less hacky #test

Rather than swapping the CSS class of all textareas, and then having to
monkey-patch jQuery.fn.prepend so that when static math dynamically adds
textareas, their CSS class gets swapped too, just override the CSS of
textareas.
Fix #217 no Array::indexOf in IE<9, use RegExp::test

http://kangax.github.io/es5-compat-table/#Array.prototype.indexOf

Thanks @eoghanmcilwaine
Fix selecting already selected static math

Only prepend textareaSpan if not already inserted, otherwise will detach
and re-attach, synchronously firing a blur event which in an immediately
subsequent event thread detaches the textareaSpan.

Deals with #216 for non-IE8; relies `return false` in mousedown handler
preventing textarea from being blurred, though, which apparently doesn't
work in IE<9.
Reorg test_server to use then define callback fn #cosmetic
Swap order of requires vs reading env variables #cosmetic

Puts env variables closer to where they're used
`make server` auto-rebuilds without restarting server

Before, the `test` make target was a dependency of running the server
and node-supervisor killed and re-ran `make run-server` whenever any
source files changed, so the server would be down while `make test` ran
and you had to keep Refreshing until `make test` finished and the server
came back up.

Now, we still re-run `make test` whenever source (or test) files change,
but the server never goes down, it just puts all incoming HTTP requests
on hold until `make test` finishes.

This way, as soon as you write a change to disk you can switch to Chrome
and Refresh just once, and it'll take as long as it takes `make test` to
complete for the page to load, rather than the connection being refused
because the server isn't running so making you keep Refreshing until the
server comes back up.

node-supervisor apparently defaults to fs.watchFile rather than
fs.watch[1], but the fs.watchFile docs[2] specifically recommend
fs.watch[3] instead. As a bonus, node-supervisor apparently only watches
individual files, the list of which is determined when launched[4], so
if new source files were added then `make server` would have to be
killed and re-run, whereas we now watch the entire src/ and test/
directories.

[1]: https://github.com/isaacs/node-supervisor/blob/v0.5.6/lib/supervisor.js#L285-L288
[2]: http://nodejs.org/docs/v0.10.22/api/fs.html#fs_fs_watchfile_filename_options_listener
[3]: http://nodejs.org/docs/v0.10.22/api/fs.html#fs_fs_watch_filename_options_listener
[4]: https://github.com/isaacs/node-supervisor/blob/v0.5.6/lib/supervisor.js#L144

Also, one less dependency!