Fixed Decoding.read_long! for negative values

This commit handles the decoding of negative long values.

```ruby
describe '#read_long!' do
  it 'decodes a negative long' do
    buffer = ByteBuffer.new("\xff\xff\xff\xff\xff\xff\xff\xff")
    Decoding.read_long!(buffer).should == -1
  end
end
```