Refactor integer unmarshaling to share code.

Now unmarshalInt and unmarshalBigInt pass in an int64 decoded
value into a shared unmarshalIntlike, which has all the logic
to check that the decoded value fits into your bind variable.

This is in preparation for adding varint support, which also
will use the unmarshalIntlike function.
Add support for varints.

Similar to other integer types except you must demarshal varints
greater than 8 bytes using a *big.Int. It is possible to detect
unset varint fields when fetching using a **big.Int double pointer.
Maybe all types should support this as a way to detect unset cells as
opposed to cells with a value of zero?

Varints are signed integers encoded using two's complement. When marshaling,
gocql trims the encoded bytes down to the minimum required to encode the
integer value (e.g. so if you encode a varint value that can fit in one byte,
gocql will actually only send 1 byte).
Add myself to AUTHORS
Merge pull request #218 from retailnext/varint-support

Varint support