Implement resources for edges

The service resources have been refactored to use inheritance to
remove a lot of redundancy in the code.

In addition, components now include a link to their managing resource.

Signed-off-by: Byron Ruth <b@devel.io>