Preserve expires_in as an integer when converting a response to a proplist

This was intended as a convenience function for encoding the response
to JSON.  The specification indicates that the parameter should be a
number, and not a string.  Translating it to binary in to_proplist/1
makes it more difficult for the encoder.
Fix never expiring access tokens and codes

This number was being encoded as a binary, and later compared to an
integer.  Erlang term comparison rules mean that the time of
expiration was always greater than the current time.

The 'expiry_time' parameter in a grant context is now an integer
rather than a binary.  This may be a breaking change for anyone
relying on this value.

A side issue here was that the mocks in the TTL tests were returning
bad results that would trigger the expected results.