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 talked to a guy who is better at maths than me, and he pointed me to this: [wikipedia: n-sphere](http://en.wikipedia.org/wiki/N-sphere#Uniformly_at_random_from_the_.28n.C2.A0.E2.88.92.C2.A01.29-sphere)
Together with your proposal, this will make it work for generating n-dimensional noise.