Add support for generic internal error reporting

Currently, we're using brillo::Error for internal error reporting.
However, brillo::Error is more tailored for D-Bus.

Instead, implement a new Error class (trimmed down version of
shill::Error) for internal error reporting, and provide
functions for converting it to RPC specific error object.

Bug: None
TEST=Run newly added unit tests

Change-Id: I2b518fae6eccb8dc9f9f0e96b941289c3846a9af
5 files changed