Create v1 uuids with microsecond time entropy

So far v1 UUIDs were effectively using just new Date.getTime(), with a small
counter adding hundred nanoseconds at a time when a lot of UUIDs were created
on the same node in sequence. For applications like Cassandra this was likely
to result in identical microsecond resolution timestamps for several
statements, which is a bad thing for causality and consistency.

This patch uses the microtime package to retrieve higher-resolution
timestamps. It also cleans up the bitwise arithmetic in the v1time method, and
returns the sub-millisecond fraction of the timestamp with about three decimal
digit precision using the bignum library.

This means that a Math.round(uuid.v1time(tid) * 1000) will recover the full
microsecond resolution of the original timestamp, suitable for use with
cassandra queries.