The add_road function and tests
Added docstrings to Board methods
Added GameRuleViolation exception.
Board.add_town and test.
Outlines for road, town, city checking.
Merge branch 'master' into board-manipulations

Conflicts:
	settling/board.py
	settling/test/test_board.py
Test for add_town.
Revised add_road and test.

The new method of adding roads is similar to adding vertices. It
allows roads to be added based on hexagon_coords instead of
tiles. This simplifies and unifies the API.
Fix edge moduluous bug.
Add has_road method and tests
Added has_town method as tests
Test other conditions for has_road/has_town
Add upgrade_town and tests
Re-order methods and tests.
Refactor out `_vertext_contains code`, fix tests.
Has city implementation and tests.
add_road raises error if road already exists.
add_town raises error if town or city already there.
Board.tile and test.
Add check for roads between water tiles.