Report if products are gotten from Event, Lumi or Run without corresponding consumes call

Each time a data product is gotten from the Event, LuminosityBlock or Run without having the module calling the corresponding consumes, mayConsume or consumesMany call we issue a MessageLogger warning.
This required passing back from the Principal exactly which ProductHolderIndex was used to find the data. In the fully threaded framework this will be changed to throw an exception.
Issue warning only on the first time

Temporarily have the registeredToConsume* functions only return false the first time an unregistered item is checked. This avoids having the checker issue a warning message each time. This is only temporary since this is not thread safe and in the threaded framework such a case would cause a fatal exception.
Principal has to be the one to check to see if data being requested has been registered by the EDConsumerBase since if it has not been registered we need to fail before any attempt is made to run the Producer in unscheduled mode.
Merge branch 'CMSSW_7_0_X' of https://github.com/cms-sw/cmssw into missingConsumesWarning on 2013/07/11
Updated to conform to new Principal interface
Merge pull request #79 from Dr15Jones/missingConsumesWarning

Print Error message when a module requests a data product without first registering the request via 'consumes'