Refactor transaction to match new API

* Refactor transaction into a different subfolder
* Added a lot of tests for sighash and transaction serialization (from
  reddit's and Ryan X. Charles' `fullnode`)
* Drop "only" from sighash tests and consolidate logs
Split buildPKH arguments, add Copy constructor on publickey
Consistency with "id", "hash", and "_getHash"
Merge pull request #675 from eordano/feature/transaction

Refactor transaction class