Expect unmarshalling of 'expires_in' to be float64 interface value

As described in the JSON unmarshalling [documentation](http://golang.org/pkg/encoding/json/#Unmarshal), JSON numbers are unmarshalled to float64 interface values.

In the JWT implementation we have a type assertion for `int` after unmarshalling the "expires_in" JSON number, which means the assignment to `token.Expiry` is unreachable. The token is then incorrectly believed to never expire.

I've changed the type assertion to `float64` and added a test case for unmarshalling "expires_in" fields correctly.