TxPool (mempool)
===
First iteration
===
Where transactions are added after being received by the RPC API and where transactions wait before being included in a block.
For this iteration, TxPool is a hashMap<Transaction, ()>. The idea now is just to avoid duplication. This implements a wrapper ShareTxPool <Arc<Mutex<>>> to allow the RPC and the consensus to access the txpool at the same time safely.
TxPool has method add to add a new tx and get_all to retrieve all txs
ShareTxPool has a method `new that initializes the inner pool and wraps it, add to lock mutex and call inner add and get_all_transactions to lock the mutex and call inner get_all
Second iteration
===
Since now txs can have a hash as an id, the txpool is now a `HashMap<B256, Transaction>` where the B256 is the hash of the transaction. Before adding a new transaction to the txpool the hash is checked to confirm that there is no transaction with the exact same hash.