core: Introduce ExternalId

This patch introduces a new ExternalId class intended to manage
identifiers generated by external systems and attached to internal
entities. This external identifiers are basically opaque objects
stored as arrays of bytes in the engine.

The patch also introduces a custom GWT serializer for this class
because GWT RPC doesn't correctly handle arrays of bytes.

Change-Id: Ib93020ddc6fe6249f0bf6dd4b24db4d2d0e0b045
Signed-off-by: Juan Hernandez <juan.hernandez@redhat.com>