safe_float now returns ints when appropriate

1.0 will not turn into an int, just strings that are integers.

This lets us check the dtype of the FeatureSet.classes array to
determine what type of experiment we're conducting.
Switch objective function test to use classes array dtype

I also reworked the logic a bit so that we only do the more detailed
checking if we've got a classifier and it's not using a
"classifier-only" objective function.