Add classes for dealing with public key crypto in NaCL

This PR defines a couple of classes, one for generating and managing public/secret keys, and one for encrypting and decrypting NaCL `crypto_box`es.  The classes have both documentation (in YARD) and specs.  I also amended the copyright statement to reflect these contributions.