Add ResourceMetadata that describes possible Resource relations

A Resource represents a Object via a Representation. The Object can
be loosely linked to other Objects by describing it's incoming and
outgoing relations.

The Object it self does not know who is on the other side, except it
knows it can be e.g. 'tracked by someone'.

A Resource that provide a implementation of the MetadataResource
interface can participate in this auto linking by providing a
ResourceMetadata object that describes the Representations possible
relations.

incoming: This Object can be xx by z
outgoing: This Object is xx to z

The RelationLinkProvider use this metadata, via the RelationService, to
link the different LinkableRepresentations togather. The links are
stored and read from the RelationRepository via the RelationResource
REST service.

The metadata will describe pr Resource the following data, e.g:

Attachment can be attached_to

User can be presented_by
User can be tracked_by
User can be attended_by
User is attached_to

Conference is presented_by
Conference is tracked_by
Conference is attended_by
Conference is attached_to

The RelationLinker will then calculate and match the relations:

A Conference is presented_by a User
An Attachment is attached_to a Conference

Issue: #38
Use env variables instead of System Properties

Avoid exposing secret data in logs etc.

Issue: #52
[#80] Add Chapter 6 - NoSQL: Data Grids and Graph Databases