Added Thread based execution delay options

Created class NotificationDelayThread, for use when you need to execute
a function from an object after a delay, while not interrupting the
primary execution thread.

Added the calls to the NowPlayingModel in the NowPlayingModel.  This
would be the correct location to create the delay for notifying the
NowPlayingObservers, but not the best location to call the static
cleanup method.  Could possibly be relocated to its own TickObserver
class.  However, at the time of this posting, this has not been done.