Add error code and parameters to Error.

Error objects now can carry an error code and parameters.
This allows for later programmatic handling of the error,
including localization of the message.

Change-Id: I5393a1293f6ea515e3c7129ffbb3f3913cb9b925
Merge "Add error code and parameters to Error."