made the observer subject abstract
improved formatting
Added the factory pattern

The factory pattern also utilizes the decorator pattern.
now implements an interface
removed unneccesary use statement
removed the subject interface

Since the subject class is abstract we do not need an interface
this would only add unneccesary abstraction.
renamed file
moved tested up one dir
added docs and declared class abstract
added custom exception
Merge branch 'master' of github.com:RickLancee/patterns