Scrypt.Enc: refactor header packing
Scrypt.Enc: inline the scrypt wrapper into deriveKeys
Scrypt.Enc: re-arrange params to encryptWithMeta for composition
Use newtyped bytestrings

Re-use Pass and Salt from Crypto.Scrypt, introduce
Plain and Meta for the plain text and meta information.

These types serve as documentation and as a safe-guard
against accidentally using a password for the plain-text,
or embedding the plain-text that should be encrypted unaltered
in the header.
Scrypt.Enc: only expose Enc fields for testing and provide a view for meta

Use a CPP guard to conditionally expose the Enc fields.
The Enc structure represents the "raw" record and should not
be inspected or manipulated by clients.

The only value we want users to freely inspect (but not alter)
is the meta information; provide a view for it.
Documentation updates