Add IDGenerator class
Add module level tests and PEP8 fixes. Fixes #2