Modified: 1.py and 2.py. Moved solution inside of function.
Added: tests/test_problems.py to prevent regressions during refactor work
Added: helpers.py with tests to hold DRY utilities.
Modiied: helpers.py. Added lcm and gcd.
Modified: helpers.py to add a prime generator
Added: problems.py with tests.

Managing problem solutions as separate .py files was leading to a
lot of code duplication.  I have decided to combine all solutions
into one module.  Each problem solution is given its own method,
e.g. problems.problem1() should return the solution to problem 1.
Code that is requently reused or duplicated between problems will
be moved to the helpers.py module.
Removed: all individually numbered problem files.

Problem solutions now reside in the problems module. This change
is to improve maintainability and reduce code duplication as I
work on improving my already-working but sometimes slow solutions.
Modified: problems.py to use explicit import
Modified: problems.py to fix problem5()
Modified: helpers.py and tests/test_helpers.py

I moved several functions out of problems.py and into helpers.py
in anticipation of major refactoring my problem code.
Modified: refactoring on problems.py. problem12() still broken.
Added: .gitignore to ignore dotfiles and .pyc files.