Improve tests, fix softmax

- Increase coverage of unit tests. Tests now asserting something meaningful
- Move campaign tests into own test file
- Added linting to build
- Better reporting if coverage test fails
- Fixed softmax implementation