Added physics and random terrain generation

So things got a bit out of hand and rather complicated - I'll add a readme and some proper commenting soon, promise!