Add MillisecondTimer class.
Implement MillisecondTimer in the unix read() and write() functions.
Rename now function to timespec_now and timeout_time to expiry, for greater clarity.
Eliminate modulus operator.
Remove TimerExpiredException.
Of course, the timespec_from_ms function must return its result.
use static casts rather than C-style casting

C-style casting can result in undesired reinterpret_casts
So we should avoid them, see:
http://stackoverflow.com/questions/332030/when-should-static-cast-dynamic-cast-and-reinterpret-cast-be-used
Divide by 1e9 to get seconds from nanoseconds, instead of 1e6.
Fix for computing an expiry without rollover.
Wrap nanoseconds when >= 1e9, rather than > 1e9.
Pre-fill buffer at start of read, to avoid the select if unnecessary.
Add unix timer tests, clarify tests are only on unix at present, move test builds into separate makefile.
Build tests on Travis.
Add waitReadable and waitByteTimes stubs.
Fill out waitByteTimes, integrate it into read as discussed in ticket #37
Merge pull request #45 from clearpathrobotics/timespec-refactor2

Timespec refactor (again)
Fix compilation warning

See issue #53
Merge pull request #54 from nbigaouette/master

Fix compilation warning
support for mingw (mxe.cc)
Merge pull request #55 from dawid-aurobit/mingw

support for mingw (mxe.cc)