deepcopy Board and Tile equality plus tests.

This implements the ability to do

```python
from copy import deepcopy
from settling.board import Board

#create a board
master_board = Board(...)

# do some stuff to it
master_board.add_road(...)

# copy it
child_board = deepcopy(b)
```

Doing this will create a complete copy that can be passed to a player class, or AI class, that can then mutate their copy at will, without making corresponding mutations to the master board.