Principal::getProductHolderByIndex no longer attempts to resolve the product

Only one call to getProductHolderByIndex ever requested the product actually be resolved. So simplified the routine to only do the lookup of the ProductHolder (as the function name implied) and have the resolution of the product done in the one function which requested it.
Added Principal::readFromSource

The only call for Principal::resolveProduct was to read from source by the ProductHolder. This makes an explicit function to do that work.
Removed Principal::resolveProduct

The last use of Principal::resolveProduct was replaced with ProductHolder::resolveProduct so that all resolves are handled the same way.
Principal::getProductHolder only gets ProductHolders

Previously, Principal::getProductHolder not only got the ProductHolder but could also run them based on different choices for the function arguments. Now the function only gets the ProductHolder requested and leaves running it to the calling function. This now matches how all other interactions with the ProductHolder are handled.
Merge pull request #1871 from Dr15Jones/simplifyPrincipal

Framework fixes -- Refactored internals of edm::Principal to make future changes easier