clean up variable names for product_id.ProductManager
more test cases for productid.py
docstrings
more tests cases, for ProductManager.update_installed
no reason for ProductManager.__get_cert to be private

Change to _get_cert, makes testing easier.
add test cases for product id install scenarios
add some test cases for ProductManager.get_active
more test cases, inc failing one for "no active" case #859197
add test case for ProductManager.update() with no active repos
Change *Directory subclasses to use super()

This makes it a little easier to mock out
parent classes for testing.
make DatabaseDirectory use super() like other *Directorys
more tests for productid and ProductDatabase

Add many cases for productid.ProductManager, and
add some cases for ProductDatabase, including
stubbing a DatabaseDirectory