The idea here is to preserve the history of `dev` branch development and its
code when merging with the `master`. Later this code could be moved into the
masters code where appropriate.
* VM:Add abstract stack item
* VM: Add stackItems; Array, Boolean, Int and ByteArray
* VM: Add tests for stack item
* VM: first pass at Random Access Stack object
* VM: Add Sub, Mul, Mod LSH, RSH
* VM: moved test helper functions into separate file
* VM: removed helper functions from stack_test.go
* Add conversions for bytearray and Int stack items
* Add instructions file for vm
* - Add guide to stack readme
- Add testReadInt64
* Add Builder
* Refactor Int, Boolean, ByteArray conversion
* Add Context stack Item
* Add Invocation stack - convenience RAS
* rename testhelper to test_helper
* Move opcode file
* - Add `Add` OpCode
- Add Opcode Function map
* - Add test for math `Add` opcode
- basic opcode execution
* Add popTwoIntegers convenience func
* Add `SUB` Opcode
* Export Context Read methods
- Return errors where failable
* - Add `Op` to handleOP func signature
- Add PushNBytes OPcode
* remove error on NewBoolean
- Expose underlying with Getter on Boolean StackItem
- Add Equals method for ByteArray
* Make Next() method on Context failable, refactor peekContext and Peek
* Add ExecuteOp, Step and Run methods on the VM
* Add Equal Opcode
* Add THROWIFNOT Opcode
* Add RET Opcode
* Refactor PushNBytes Opcode
* refactor Add, Sub to return VMSTATE
add popTwoByteArrays helper function
* Add basic tests for vm
* clarify vm states
* Add astack
* [VM]
Pass ResultStack to the opcode handlers
* [VM]
refactor handlers to have rstack as argument
* [Stack]
- Change RemoveCurrentContext for PopCurrentContext
- Add CopTo method to stack
* [VM]
Add Result stack Len check in simple run test
* [VM] fix typo
* [Peer/Stall]
Change seconds to milliseconds in test