Wait functions

~~While the timespec PR is waiting on reviews, I want to get the ball rolling on this one, which is the actual change that one sets up for, based on the discussion in #37. [Click here for a diff showing just the additional changes in this PR](https://github.com/clearpathrobotics/serial/compare/timespec-refactor2...wait-functions).~~

Haven't had a chance to test much at this point, but it will be going into battle on two different peripheral drivers in the next day or two, so there will be some practical miles on it long before an actual merge happens.

For the moment, it's also missing the stubs in the Windows implementation; compilation there will fail until those are added in.

---

Okay, the timespec PR is merged, and this one has been rebased accordingly.