don't store signatures in notebooks

store them in sqlite in .ipython instead.

While we are doing an nbformat revision, this information doesn't really fit in the notebook content, and causes problems for notebooks in VCS.

Only the signature (and the associated hash algorithm) are stored, not associated with any document or path. This means that moving or copying files doesn't affect trust, and every trusted change to a notebook remains trusted.

64k signatures are remembered by default, and when the size limit is reached the oldest 25% are discarded, meaning that notebooks you haven't opened in a long time can become untrusted. I don't think that's a big deal, because you can explicitly trust them again with the click of a button.

ping @ellisonbg, @fperez

This one's for you, @ahmadia
If we ever change algorithm, and still accept signatures generated by the old algorithm, this would leave a hole: unsigning a notebook only removes its signature with the current algorithm. If it was signed with an older algorithm, it would remain trusted after unsigning.

This isn't a problem while there's only one signature algorithm in use, but it's worth thinking about, even if we just leave a comment to remind ourselves to update it.