In `Hash()` we allow the caller to specify the output size, restricted by `BYTES_MIN` and `BYTES_MAX`. Looking at the code, `crypto_generichash_blake2b_salt_personal` supports that as well. 

Initially I was going to say that this should do that as well, but the more I think about it, the less sure I am about that. As you reduce the output size, the collision risk increases. Maybe this is a case where we should say that we are smarter than the caller, and just give them the max output - unless we get a compelling use case to allow them to specify.

I'm torn.