make API accept/return fixed length buffers

This adds a bunch of precondition checks and unit tests to make sure that all APIs which accept or return group elements will use Buffers that are exactly equal to the length of the modulus. This should rule out intermittent failures when output values happen to begin with a 0x00 byte.

Note that this pull-request contains five commits. It may be easiest to review them one at a time: each makes a specific change.

This will close #10.