Run lastBlockJob only once during startup.

Disable both the background periodic job and the call from blocknotify.

It was not buggy per-se but it was misleading.  The periodic lastBlockJob would
successfully handle ordinary transactions and reorgs but not double-spends.  It
might erroneously lead Baron deployments to think it is working with a broken
walletnotify configuration.

Keep its plumbing because we may decide to bring it back later.
Cleanups
s/paymentValidForMinutes/spotRateValidForMinutes/
Invoice View: Fix conditions that stop invoice reload

* Previously isPaid immediately stopped the reload loop.
  This is problematic because a paid invoice that becomes unpaid due to a
  double spend would fail to reload and inform the user of that fact.
  This was fixed by stopping the reload loop when isPaid && !watchingAnyPayment().
* Previously isVoid and isExpired failed to set the page properties informing
  the user about the status.
* Previously onload invoice would display expiration countdown for 15 seconds
  before showing the Void or Expired status.  Fixed in both invoice.ejs and
  by starting the expirationUpdateJob only after the first requestInvoice().
Test: /api/pay/:invoiceId creates payment, no need to poke the page
Added res.end() to api route
Fixed error printing in pay route. Fixed if else order in pay api
Kill dead code (old /payment route)
Improvements to createPaymentDataForView()

* Do not needlessly call getBlock if there is no blockhash.
* Handle bitcoind errors.
* Error reporting is more informative.
* Errors become status 500 in the API response
Run watchPaymentsJob during startup before anythig new is obtained from bitcoind
Silence job log events that are not errors

The commented out DEBUG lines are meant to come back with bunyan debug levels.
"use strict" in all server-side code
Improvements to validate.block()

* Fixed: Failed to detect a defective line_item when the last line_item is valid.
* Detects many other types of invalid Invoice JSON conditions.
* Returns err to a callback containing all errors that caused validation failure.
  Prints to both console.log() and in a status 500 response.
validate.invoice() tolerate then validate numbers posted as strings
Fixing logical error that doesnt show quantities between 0-1
Reject quantities and amounts that are too small or too large

 * Modified helper decimalPlaces function to handle scientific notiation
 * Updated mocha test for new test cases
 * Quantity and Amount must have 0-8 decimal places
 * Quantity and Amount must be less than a trillion
Config: minimumBTC or minimumUSD allowed on invoice
Updated Code to Fix callbacks that were falling through
 * Callbacks in the pay route should not longer be called twice
 * Applied fix to Async waterfall in createdPaymentDataForView
 * Applied fix to createNewPayment to stop callback from being called
   twice
Better handle bitcoind errors during startup.
s/\t/ /g