Possible patch for #143

@tdomhan @jaberg

Addresses problem with result dictionary having no 'loss' key. Minimal failed 
result dict can now be {'status':STATUS_FAIL}.

Now, if 'loss' is None or is not set, it is interpreted as float('inf') instead
of the default python behavior. The default behavior of the comparison
(None < x), where x is a float, is always true. So, a result with loss == None
will always be lower than a float value for loss (not desired behavior). This
patch fixes the problem of comparing nones in trials.best_trial.

This can address both issues in #143