Added a world generator and allowed for further generators to be added

To use the world generator, run Hematite with no arguments.

Some screenshots [here](http://imgur.com/a/ptHxC).

It's a very simple world generator, using the diamond square algorithm.

Further generators can be added using the Generator trait. You will however, have to hardcode it to select that generator.
You can also just write `let mut rand  = task_rng().gen();` btw (i.e. RNGs are `Rand` themselves).