Expose personalization, salt, tree hashing

Hi. I'd like to use more of the functionality of blake2b, and will happily contribute code exposing more of the blake2 functionality. Is this ok with you?

I'm thinking of adding a type Config with all the possible settings, and then a func New(*Config) hash.Hash. How does that sound to you? blake2.New(nil) can behave like the current NewBlake2B. No need for backwards-incompatible changes.