making the PipeExtension class public whilst ctor is internal
observe appended PipeExtensions and ability to add custom packages

this tackles issue gh-16.

Essentially, we want the ability for extension point for observers to
append custom packages. This will pave the way of allowing list and
enumerable types to be enrolled for "free"
Notify observers about prior installed pipes when joining the builder

We want to notify the observers of all the installed pipes (events) which
they may have accidently missed or were delayed in the enrollment.

This is to address gh-17.