Introduce splitting original PDF into pdf pages

Laying down groundwork necessary to integrate hocr into the
original pdf.
- Updated Splitter job now use pdftk to burst original pdf into
multiple single page PDF documents.  this replaces the previous gs
impl that split the original PDF into multiple "single page" images.
- New Converter job converts the single page pdf created by
the Splitter job into a image that can then be OCRed.
layer searchable text behind original pdf

i screwed up an earlier git commit so this commit represents two large chunks
of work:
- Update PageGenerator job.  now creates a visually blank searchable
pdf
- Add PdfLayer job. layers blank searchable pdf under the original pdf
page.  this results in a searchable pdf page that is visually identical
to the original pdf

These changes mean that there are a number of "versions" of pdfs for
each page stored in redis.  Some of these will exist is redis simultaneously.
In order to ensure that there wasn't any accidental overwriting of these
files due to key collision I am using distinct file extensions:
- *.pdf: the original pdf, the original pdf pages or the final pdf
- *.spdf: visually blank searchable page
- *.lpdf: layered pdf page.  original pdf over blank searchable page
Simplify how PdfLayer fetches files from redis
Minor changes to PdfLayer

- removed TODO.  pdftk requires output file to be different than the source files.
- renamed oPage/sPage to foregroundPage/backgroundPage
Drop commas for array element defined on separate line
Add more informative message about pdfbeads image extension
Update array of jobs that cause page level errors
Support creating searchable pdfs of arbitrary sizes

The previous version was stuck on making searching PDFs that
were letter sized because it used a stock blank.jpg with letter
sized size/density.  Mimeograph now determines the size the source
page by parsing the hOCR page and then generates a blank image
to fit it.

- utils.coffee: log.debug now using stringify.  this is helpful for
debugging
- mimeograph.coffee: PageGenerator is a pretty big beast now.  it now
handles a multistep process to create the blank image used to create
the searchable blank pdf.  i decided against breaking this out into
separate jobs because the workflow because i don't think it was waranted:
this mini-flow is pretty isolated and broken out into a series of
callbacks.
- package.json: added a new dependency to help parse the hOCR xml.
converting the xml to json was the best of all of the nasty options.
although i would prefer a straight forward xpath expression, the depdency
we are using "xml2js" is pure JS.
update package.json dependency on coffee-script 1.2

almost every host i installed mimeo on was using a different
version of coffee-script (1.2.0, 1.2.1, 1.3.1 etc). i am
now specify a particular version to confirm with the env
that mimeo is developed and tested against.  in the future
i will try to update the version of CS and node used.
Bypass NaN exception throw by pdfbeads in certain cases

In certain cases the hOCR generated by tesseract specifies
zero length words.  This causes pdfbeads to lose its mind.  The
monkey patch just removes any zero length words that pdfbeads
has identified before it processes them.
Remove dependency on ghostscript

Converter job now uses imagemagick to turn a pdf page into
an image.  this replace GS.  imagemagick was already being
used to dynamically generate the "blank" canvas for the
searchable pdfs and is a dependency of pdfbeads.
Update readme.  No longer dependent on GS
Remove dependency on ghostscript

Converter job now uses imagemagick to turn a pdf page into
an image.  this replace GS.  imagemagick was already being
used to dynamically generate the "blank" canvas for the
searchable pdfs and is a dependency of pdfbeads.
Update Splitter to return more selective results

Splitter uses a more specific regex to identify files to
pass to the callback.  This will prevent Splitter from
including junk files that happen to match the current jobs
jobId.  this can happen if you rerun a job that previously
failed.
Add TODO to deal with exceptional circumstances
Merge branch 'lost_commits' into merge-hocr-into-original-pdf
Minor cleanup

Renamed the pdfbeads monkey patch file to patched_pdfbeads.rb.
Minor cleanup of mimeograph.coffee file: variable alignment,
renamed a method etc.
Align several variable assignments & make proper use of constants
Resolve manual merge conflict detritus

I am a donk and didn't notice that there was a manual merge conflict
in the mimeograph.coffee file.
Merge pull request #37 from steelThread/merge-hocr-into-original-pdf

Merge hocr into original pdf