Specify const for all read-only function arguments
I am not sure if I have achieved complete const-correctness, but at least this change should make it more clear which arguments are input and which are output arguments.
The previously used internal implementation from the bitshuffle library does not specify const for some read-only arguments. Therefore, the first commit adds a custom implementation.