better fix for the alignment warning of the previous patch

'work' is a small, constant size array for temporary data so it can be
allocated on the stack and the 'work' parameter can be eliminated entirely.

Thanks to Bård Skaflestad for the suggestion!
fix new 'unused variable' warnings on GCC

that one was due to the fact that the constructor arguments were no
longer used to initialize (unused) private member variables. These
warnings did not appear in CLang for some reason. Again, thanks to
Bård Skaflestad for the review.