More robust initialization.

Can't promise anything though. I've caught a couple cases were empty
strings returned from the database (which should be null ColdFusion.
Null. /facepalm) that actually are supposed to fit in to numeric or
date times. This probably still needs more work, but ya know. I have
also included a check to make sure that properties actually exist
before I try to set them. Maybe some day later, I will allow the
creation of dynamic properties. Dream big.