Made OtherThingAlgorithm independent of edm::Event

By decoupling OtherThingAlgorithm from edm::Event allows us to test different ways of getting the data from the Event.
Also got rid of the header for OtherThingProducer
Changed name of accessor which allows external items to change BranchIDLists
Added comments describing what an algorithm is doing
Added tests for Refs formed from alias branches defined in a previous process.

A bug was discovered in the interaction between edm::Ref and EDAlias. The bug depends on the exact order between the original and alias branch names and/or branchIDs. The additional tests cause the bug to manifest. The change to the original test to create Refs in step2 is there to catch any possible regressions.
Fixed bug between edm::Refs and EDAlias

Nulling out the BranchID for a kept EDAlias some times caused edm::Ref’s created in subsequent jobs which refer to the aliased branch to fail. The failure depends on the exact ordering (branch name and/or branch ID) between the original branch and the alias.
no longer needed
Merge pull request #901 from Dr15Jones/productIDBug

Framework buggix -- Fixed bug between edm::Refs and EDAlias