Fleshed out the Hill Climbing algorithm and made changes to Solver as
necessary.  The algorithm has not been tested, yet.  There is also at
least one place in HillClimbing where I used duplicate code.  When the
algorithm tests out ok, I'll move it to the Solver class to remove the
duplication and to allow other algorithms to use it as necessary.