Refactor script

This PR:
- adds preconditions module to bitcore object, and refactors it's tests
- adds preconditions to Opcode, and adds tests.
- refactors Script to make all chunks be objects