Fixes to the IImageProvider implementation.

Changed IImageProvider methods to throw an exception if nothing is set up in the pipeline. 

Basically, the SDK will either pick up the internal identity of the object you are delegating to (specifically, the last object in the pipeline - the one you are passing the Lock call to), or it will fail the lock call and abort rendering. Might as well preempt that and give the debugger a nice message.