move generic module tests to main
exclude ISynthesiser
add Identity class
identity constructor
more identity testing
add constraint interface
add WeightLengthConstraint
make layers into fully fledged components (finally!)
fix input gradient clearing for layers
aplly constraints refactoring
misc edits
switchable dropout of gradients
droput on gradients
tests
fix trainingop gradient problem
docs and edits
fix up learning rate propagation
remove unnecessary applyconstraints
kill dead code
delete redundant ALayer base class