* fix: allow Bool input/output types for contracts
Contracts created with the `contract` macro and having a method with a `Bool` input/output type were failing to compile. Example:
```
contract(MyContract):
proc enableTransfers(
transfersEnabled: Bool
)
```
Failed with:
```
Error: type mismatch: got <type Bool>
but expected one of:
proc unknownType()
first type mismatch at position: 1
extra argument given
expression: unknownType(Bool)
```
This fix enables translating `Bool` type signatures to solidity’s `bool` type.
* add Bool encoding/decoding test
Move all encoding/decoding functions to a separate sub-library, to allow libraries to use these functions without needing to import the entire library (ie hopefully without needing to import secp256k1).