Provide better diagnostics when mkfifo fails by including the file path it was called on.

Diagnostics could be further improved by pre-testing that the file path
exists and is readable and writable before attempting to use it.
Fixes #13: Detailed error of why mkfifo failed will now be visible on parent's STDERR.

Note: When the mkfifo call fails, the parent process crashes. I'm not
sure if that's the intent.
Fix #14: Provide better diagnostics when call to spawn phantom fails.

We now provide the full system call details, to help under file and path issues.
Add a couple comments to explain these code paragraphs.
Merge branch 'better-diagnostic-for-mkfifo'
Merge branch 'explain-the-bang'

Conflicts:
	phantom-process.js
Clarify that the opts passed are the default options for all requests.
Clarify that 'ropts' are the options passed to render.

It wasn't cler what "ropts" were. "Return options"? "Read-only options" ?

It appears that they are options to passed to render(), as opposed to the default options.
Clarify that 'filename' is the fifoFile.

'filename' is generic. The name 'fifoFile' clarifies that the filename
is question is the FIFO.
Clarify that pool refers to a pool of phantom processes.

When reviewing the code it wasn't clear whether this abstract pool was
made of requests, processes or what.

Using a more explicit name makes the code easier to understand.
Clarify what the 'queue' is for.

'queue' is a very generic. It wasn't clear before what it was a queue
of.

The updated name clarifies that's a queue of requests.
Remove stray debugging line added earlier.
Improve docs and diagnostics

- Generally, more code comments have been added.

- Child process stderr is now always piped to parent's stderr for
  better diagnostics.

  I didn't see any downside to this, but it's definitely useful when
  things aren't going well.

  It's also nice to not hide it behind a debug flag, since you don't
  always know when you are going to bump into a problem.

- New Troubleshooting section added to README, but note that
  it reflects how I updated the handling of STDERR for better
  diagnostics, and some commented out code I left in if
  people need super-deep diagnostics.
Merge branch 'issue-23-document-supported-formats'
Merge branch 'readme-corrections'
Merge remote-tracking branch 'origin/master'
Merge branch 'test-should-use-phantomjs-package' into issue-20-support-args
Refactor: Consolidate default options in one place.

Previously, default options were scattered and checked throughout
the code. It was hard to see what all the options were, and there
were extra conditional checks because the code couldn't depend an option
already being set or not.

Now the all defaults are declared in one place, and some related
conditional code can be removed, since the code can now expect
the defaults to be set in advance.

(the phantomFlag support has not been introduced yet, but this lays the
foundation for it).
Fixes #20: Adds support passing flags to Phantom.

Includes README update.

Manually tested. I'm not sure to add an automated test for this.
You can add --debug=true and see the extra output generated.
Convert spaces to tabs to match existing project standard.