Allow Modification of Existing Service Definitions

Closes #26

Introduces the new `ContainerInterface::extend` method that allows users
to fetch an already existing definition for modification.
Remove ServiceNotRegisteredException

In favor of just using an `InvalidArgumentException`.
Slight changes to PR and rename of Exception
Reduce Duplication Between DefinitionInterface Implementations

Both ClosureDefinition and ClassDefinition share a lot of common things
but, generally, have duplicate code. This pulls that common code out
into an abstract definition.

Conflicts:
	src/Orno/Di/Definition/ClosureDefinition.php
Removes un-needed class level doc blocks
Bump copyright
Fixes doc block
Fixes return type of add method
Contains small syntax changes