Improved support for determining max shared key length.

* Tests now check to make sure that a request for a shared key that is
  too long will fail.
* Add MaxSharedKey function to return the maximum length of a shared key
  that a given public key can support.
* The key length check in the GenerateShared method had the logic
  inverted.

The tests rely on the default curve remaining P256; the value of skLen
in the test code will need to be adjusted should this curve no longer be
the default.
go fmt