Added license header.
Fixed problem with newlines and windows

seek() and tell() behaved weird when opening files on a windows machine,
Opening in "rU" mode fixed this.
Made more pythonic.
Made more pythonic
Made this function O(n^2) -> O(n)

Instead of looping through the whole mesh looking for grains that are
connected to the specific node_id and repeating this we instead loop
through the mesh and save all the results to a dictionary that works as
a lookup table.

This means that we only need to loop through all the nodes once instead
of n times.
Removed some old tests.
Added some tests