Created ParallelForwardingAppender, use volatile modifier on shutDownRequested

Created a base class AsyncForwardingAppenderBase.

Made AsyncForwardingAppender inherit from AsyncFowardingBase and removed members that are defined in the base class.

Created class ParallelForwardingAppender, inheriting from AsyncForwardingAppenderBase.  This class uses BlockingCollection<T> to implement a lossless async forwarding appender that does not have to sleep in the consumer thread loop.   Created associated unit tests.

Added the volatile modifier to the shutDownRequested member because it is accessed from two different threads and we want to ensure that a cached version of the value is not being read in the subscriber thread loop.

Verified all tests pass.