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