Squares outside the edge of the board are attacked

Adds the squares outside the edge of the board as being under attack.
This is for our heuristic calculations of determining how many squares
around the king are under attack.
Add lookahead value

Adds the lookahead value to the AIChessGame class.
Merging Chris' branch with heuristicX branch

Pulled in Chris' changes to heuristic functions. Begins the
implementation of calculating a heuristic value for the White player.

Also begins updating the Graph class from Brian's changes.
Adding __hash__() function to Position class

Adds Chris' __hash__() function to Position class and syncs up our
lookahead in AIChessGame class.
Fix Graph class

Added a temporary pass to Graph __init__() function, so the game will
run for now.
Changed blackAttacks to include piece position
Added borders to whiteAttacks
added Heuristtic Value/weights to every attack.

Works so far!
added black current position to the instantiated piece instead of global
calculateHV returns just an int.
Add graph generation for heuristicX

Adds a function to generate the game graph for the White player's
heuristicX function.
Merge remote-tracking branch 'origin/heuristicX' into heuristicX

Conflicts:
	AIChessGame.py
Fixed merge conflicts

Fixed merge conflicts between Chris' and Mitz's code.
Merge remote-tracking branch 'origin/master' into heuristicX
Optimize graph generation

Made some minor optimizations to the game graph generation algorithm.
Start implementing the minimax algorithm

Initial commit for implementing the minimax algorithm. This is
incomplete and breaks when it tries calling calculateHV().
Updated White player's calculateHV()

Updated the White player's calvulateHV() function to only receive a
board state and to only return an int based on how many squares on and
around the Black king are currently under attack.
Improved heuristicX calculations

The heuristicX calculations are better now, with test cases 1 and 3 both
correctly mating in 2 moves. However, test case 2 is more difficult and
sometimes results in infinite back-and-forth moves between the two
players' kings which never result in a resolved game state.
Removed unused code

Removed some commented-out code.
Initial heuristicY calculations

Adds the initial heuristicY calculations for the Black player to try to
avoid check mate for as long as possible.
Final commit for submission

This is it. Test cases 1 and 3 work great. 2... not so much. (Sometimes)
Merge pull request #6 from bmitzel/add_heuristics

Add heuristics