Make create_or_update_from_hash more robust

Previously I was using .nil? usually and just using .blank? when
necessary for certain values, but that has so far caused like four
different errors.  This is kind of a "nuclear option" in that I'm
totally replacing .nil?, but it's a minor performance hit for a huge
gain in robustness.