fixed a bug in temperature map comparison

I was checking for min <= temp <= max but the values being
checked for are in opposite order (lower numbers are higher
temperatures), so I need to check for max <= temp <= min
changed mapgen-based spawning function so that it can directly
spawn a tree if given a table instead of the name of some
function to execute.