BUG-1120: improve notification queue

This is a slight improvement in that it uses a ForwardingBlockingQueue
instead of subclassing -- allowing for easy replacement (for an
ArrayBlockingQueue for example).

Another improvement is the use of RejectedExecutionException instead of
IllegalStateException -- allowing clients to cleanly recover from thread
interruption.

Change-Id: I80040846bb34a12da1eb1e0df62a538b0551239e
Signed-off-by: Robert Varga <rovarga@cisco.com>
Merge "BUG-1120: improve notification queue"