Perlin noise generator prototype

Should be useful for #65.
This is not yet finished, but in a usable state. Some docstrings are missing and I still need to figure out a good solution for the different interpolation modes. (Maybe just offer polynomial?)

Also there are hard edges at the grid cell borders (much more noticeable with linear interpolation). I'm not sure if I messed up something here, but they might as well be due to to algorithm itself.
Anyway we will probably use the polynomial interpolation, so it shouldn't be an issue.

Please discuss.

Seed: "sftworld1", 500x500px, 10x10 grid cells, polynomial interpolation:
![perlin_sftworld1](https://cloud.githubusercontent.com/assets/6196356/5471009/6d0d9fe8-85f0-11e4-922e-bdba7486cce1.png)

Same with linear interpolation:
![noise](https://cloud.githubusercontent.com/assets/6196356/5471187/d4276018-85f2-11e4-82b0-5c94c26ee262.png)

Red: "sftworld0", green: "sftworld1", blue: "sftworld2", polynomial interpolation, dims as above:
![multicolor](https://cloud.githubusercontent.com/assets/6196356/5471422/ba4ec386-85f5-11e4-9408-b4e1632d1668.png)

I don't think not caching at all will work. With the parameters i used for the grey demo images, caching saved 9999 get_unit_vector3 calls per inner grid node and 121 vectors were cached.
I don't know how much memory overhead dicts and lists have, but a 2D grid with 1000x1000 nodes would mean saving 2 million floats, which should be possible without memory problems. (Note that 1000x1000 nodes would be enough for a map size of about 20000x20000. The age2 default size for an eight player map is 220x220).

As long as we don't make this a spin-off project, we can probably ignore this.