getblockhash: throw JSONRPCError (not runtime_error)

I tend to agree due to the missing relation to an address or key.

My understanding was that RPC_INVALID_PARAMETER is used for truely invalid input such as a sighash mode that doesn't exist whereby RPC_INVALID_ADDRESS_OR_KEY seems to be used for "invalid at this point" inputs ("block not found", "no information available about transaction"), but it's not 100 % consistent.