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.