Farming blocks placement check and drops

PR splitting as expected in #374.
Seems it's ready to be reviewed. 
Because someone else may ask why this was done, I'm re-commenting on it:

I asked for this to be done as the random object was being used in multiple subclasses. There is a larger fix to do with respect to this, but this solves the immediate problem with the PR where multiple states could be seeded with the same random.

Hopefully doing this will solve some future problems with not-so-random things.