* Refactor table driven tests to use subtests
* sdk/framework: add TypeSignedDurationSecond FieldType
Adds the TypeSignedDurationSecond FieldType which accepts positive and
negative durations. The existing TypeDurationSecond FieldType does not
accept negative durations.
* Add tests for 0 for TypeDurationSecond and TypeSignedDurationSecond
Multierror is not nil unless you return ErrorOrNil, so this was causing
non-nil errors to be returned when not expected.
Also we need to ensure we only call handleWALRollback if a function
exists.