(PUP-3331) Provide auto* relationships for types

This patch adds the ability to create all types of auto* relationships
for custom types.

Supported:
* Autorequires
* Autonotifies
* Autobefore
* Autosubscribes

Notify and subscribe work properly as designed and can notify services,
execs, etc...
(PUP-3331) Updated documentation

Attempted to update the documentation to make it clear that you can now
use all four types of relationships.

Updates #PUP-3331
(PUP-3331) Updated spec tests

Added full spec tests within 'type_spec.rb' for all possible
permutations of autorelationships using fake types compiled into a real
catalog.

This was the only way of ensuring that the propagated events could be
properly tested.

Updates #PUP-3331
Merge pull request #3112 from onyxpoint/PUP-3331

(PUP-3331) Provide auto* relationships for types