Renamed Point to Stone, to prepare for further changes which would make Point an ambiguous name
Added a Coord struct. It contains a col/row pair. Coord is now used in Chain to store references to Stones via their coordinates.

The reasonning for using this scheme is that standard &pointer aren't enough because of circular references between Stones and Chains (which is also tackled by the addition of a chain_id on the Stone side). We could use &pointer on only one side, but that wouldn't help much, as some manual handling would still be required, and it would add major headaches in terms of lifetimes, and handling mutability correctly, as well as probably being less memory efficient as Coord (acting as a sort-of pointer) only uses 16 bits instead of the full 64 bits/pointer (on a 64bit arch).

The other option would be to use Rc & Weak types, but using them with mutability is impossible without doing unsafe stuff.

Considering we will only change the chains/stones on play(), we should have only one place where we need to be careful of correctly updating chain_ids and the Coords stored in chains.
Updated the tests of neightbours() after rebasing on change_to_matrix branch
Here is a first implementation of chains handling.
Changed the main executable so you can actually play moves, and the state will be reflected back to you. The chains are displayed under the board for testing purposes
Simplified the displaying of hoshis in the show() method
get() methods now return the &T, and not Option<&T>. They now fail if used with invalid coordinates/indexes
Added tests for board.is_inside()
Added tests for the new methods
Switched to a Stone-less system, with a Map<Coord, uint> doing the work instead
Changed the way chains are kept away from a HashMap to a Vec<uint> containing the index of the chain. board.play() has been updated to reflect the change as well.
Changed the tests to use assert_eq!() whenever possible
Merge pull request #5 from TisButMe/alternative-chains

Alternative chains