Remove the effects of EndnsDirective and Endtransform

This is now done when exiting the block, using the improved API for
blocks.
Error when ENDNS/ENDTRANSFORM is not in the proper block

Add an error message in the assembly when an ENDNS or ENDTRANSFORM
directive is not located in a NAMESPACE or a TRANSFORM block,
respectively.
Don't enter a namespace if there's no label
Add tests for NAMESPACE and ENDNS
Add tests for TRANSFORM and ENDTRANSFORM
Adjust EndDirective for the changes to Assembly.endPass()
Add tests for END
Add tests for EVEN
Refactor the assembly tests

Add the BaseProgramsTest class, which becomes the base class for all
tests that assemble programs.