Added the Builder base class.

Added support for the Builder pattern with an abstract Builder base
class that checks mandatory arguments before the build starts.