os: change CPU time from Integer to Number

CPU time values must be Numbers, not Integers, as they can be too large
for Integers on 32 bit platforms.
buffer: fail verbosely on all bad offset values

offset === -Infinity used to fail silently
buffer: consolidate write assert tests

Assert tests for all write methods have been consolidated to a set of
three functions that can be called as needed. This prevents unnecessary
duplication of assert checks.
buffer: consolidate read assert tests

Incorrect offset values could still get past pre-existing assert checks.
They have been updated to prevent this from happening. Also have been
combine into a single arguments check function.