Add syntax checking for Sphinx

This add a Syntastic checker for reStructuredText documents based on Sphinx.  There are a few things happening here.  First, in order to speed up subsequent runs of sphinx-build, I point to the same output tree in a temporary location.  As part of that computation, I hash the path to the `conf.py` and append it as part of a name to the temporary location--the hope being that if you're working on multiple Sphinx documents, that they won't collide with each other.  Now that we can support Sphinx-based documents, I added a check to see if the reStructuredText document we're editing it a Sphinx-based on by hunting for `conf.py`.  If so, then I now set the checkers list to use the new `rstsphinx` checker in `SetupRst`.

`sphinx-build` supports multiple jobs, so this also sets the number of jobs to use using a new function, `NumCpus`, to determine the number of cpus on the machine.

There's only one drawback here and that is `sphinx-build` can be slow to run, especially on a large document tree.  The caching helps, but even with that it can still be a bit sluggish.  Just to give you an idea, one document tree I have takes about 7 seconds on the first run, and 800ms on subsequent runs.  It's not great, but I like having the error checking.  I've been running with rst active in my config for quite a while, and just living with the fact that `rst2pseudoxml` doesn't understand certain constructs.  I think this will go better.

Also, this enables automatic population of the location list.  I had this disabled before, but according to the docs, there are some commands you should run before popping up the location list, if you do it manually.  Well, with `C-q C-l` being so handy, I find myself doing just that quite often. :-)  So it seems like a good idea to just go ahead and populate it.