Test for zero? before using to fix Unit <=> string comparisons

Previously, comparisons such as the following would fail:

```ruby
Unit('500MB') > "100MB"
```

This is because of a #zero? method call on the previous case, which isn't implemented on string for obvious reasons.  

Checking for it's existence with #respond_to? seemed an easy fix.