* Made the standard non-interactive tx finalizer simple using composition of its (reusable) pieces
* Responded to code review and made minor improvements
* Fixed docs
* Add more optimizations, MultSignatureScriptPubKey.isMultiSignatureScriptPubKey() fails fast if it's not a valid multisig spk, also use more caching inside of Number's (UInt64, UInt32, etc)
* Fix shortChannelidTest
* Cache popular UInt64 numbers that are used in ScriptPubKey's. This reduces allocations which reduces memory usage
* Attempt to optimize block tests more to avoid timeouts
* Fix asm.tail bug
* Make parseRedeemScript just return a ScriptPubKey rather than a Try[ScriptPubKey]
* Make encoding a UInt64 to hex more efficient
* Cache Transaction.bytesSize so we don't need to serialize everything again to estimate the byteSize
* Refactor CryptoBytesUtil.addPadding() and it's usage in UInt64
* Use StringBuilder.append() rather than StringBuilder.addAll() which is not supported in scala 2.11 & 2.12
* Address nadav's code review
* Implemented parseDERLax signature parsing and bumped bouncy castle version to most recent
* implemented using iterators
* Factored out common functionality and added comments, it is readable now! Deleted C-like version in place of this one after property based tests showed them to be equivalent
* Made compatible with scala 2.12
* Make compatible with scala 2.11
* Added tests for lax DER signatures
* Refactored Transaction
Created RawTxBuilder
Created RawTxFinalizer as layer on top of RawTxBuilder
Introduced RawTxSigner and replaced TxBuilder!
Deleted TxBuilder!
* fixed things after rebase
* Made RawTxBuilder compatible with older versions of scala
* Began responding to review
* Made Finalizer take a Builder rather than the other way around
* Added composition for finalizers
* Ran scalafmt
* Updated txbuilder example documentation
* Moved tests from old TxBuilderTest files to relevant new test files
* Added scaladocs
* Reduce number of property based tests on BIP32PathTest and add a Future to NetworkPayloadTest's property based tests so it hopefully runs faster on CI
* Run scalafmt
* Make a few more property based tests async
* Make forAllParallel, refactor some test cases to use it
* Make BlockMessageTest async
* Bump timeout
* Make ScriptOperationFactory subclasses use a val to cache operaetions rather than operations
* Make ScriptOperation's use a Vector rather than Seq. Seq is a trait that can sometimes be backed by a List which can have some O(n) behavior
* Remove BlockTest benchamarking test case
* Put popular opcodes at beginning of ScriptOperations.operations for an optimization
* Remove Try() allocation on ECPublicKey.isFullyValid()
* Fix how CompactSizeUInt was serialized to be more efficient, move isMultiSig() and isLocktimeSPK() to be inline so we don't evaluate it unless we absolutely need to
* Use Map inside of ScriptOperation.fromByte()
* Update map to look up script operation rather than iterating
* Remove the clause in Transction.fromHex() where we throw in the case of a witness transaction, do something smarter and look at bytes in the byte vector
* WIP add test case
* Add back try/catch as it's still necessary for cases of unsigned base transactions
* Add permalink to example test case