Awh refactoring
Make AWH parameters proper C++
All structs have been converted to classes with RAII constructors. Parameter objects can only be constructed from input data or serializers.
Tests are adapted to use the new constructors, this means some code got a bit ugly there.
This change is only refactoring, plus adding tests for the serialization.
Edited by Paul Bauer