Change Blame behavior with regard to negative values

This changes the behavior of `Blame#[]` and `Blame#for_lineno` with regard to negative values.

Instead of relying on `FIX2UINT` behavior, which changed in Ruby 2.1.0+ to reflect the behavior of `NUM2UINT` more closely, I changed `Blame#[]` to treat negative values in the same way as `Array#[]` does (e.g. passing `-1` returns the last blame hunk now).

For `Blame#for_lineno`, I added an explicit check for negative values, and changed it to raise an `ArgumentError` in those cases.

I also removed the `allow_failures` list for travis again.