Add contracts to Bytecode
Make AST node data members private and add ctors
Add contracts to AST node types
Add more contracts and unit tests

These are added to ast.d, ir.d, object.d and vm.d.