SMT verify which can be used in Solana contract

This is the verify program of the Spares-Merkle-Tree which can be used in Solana contract, since we replaced blake2b_rs with blake2_rfc.

Build and test for program compiled natively

Environment Setup

$ rustc --version
rustc 1.66.1 (90743e729 2023-01-10) 
$ cargo --version
cargo 1.66.1 (ad779e08b 2023-01-10)  
$ cargo build
$ cargo test

Build and test for program compiled onchain

Environment Setup

$ solana --version
solana-cli 1.14.6 (src:cfb2cbe1; feat:2390042548) 
$ cargo build-sbf
$ cargo test-sbf