Avoid memory leaks by storing secrets on objects.

I'd always thought this would be insecure because it theoretically makes
the secret object accessible from the owning object, but then while I was
reading through https://github.com/Benvie/WeakMap/blob/master/weakmap.js I
realized that `Object.getOwnPropertyNames` is the only means of detecting
non-enumerable properties, and we can just wrap `getOwnPropertyNames` to
ignore the unique keys generated by this module.

Cleaning up the output of `Object.getOwnPropertyNames` has the added
benefit that the unique keys will no longer be printed in the Node shell,
which subjectively makes them feel even more private than they were before
(before they were just useless, now they're practically invisible).

This redesign makes the `autoForget` interface recently introduced less
useful (and harder to implement), so I've removed it altogether.

Fixes #5.
Make initial secret creation configurable.
Bump NPM version to 0.1.2 in preparation for publishing.