Add methods to use NSData when setting database key

If you are using an encrypted SQLite and have a key passphrase that may contain
non-UTF8 friendly bytes (or NULLs), you should use these methods instead.

-setKey: and -rekey: work exactly as before. Note that this means if you pass
them an NSString into which you have stuffed NULLs, they will truncate to the
first null byte when sending to the underlying sqlite functions.