add p2sh support and test

This add p2sh support. Tests and examples were added. p2sh transactions were successfully broadcasted to bitcoin testnet. 

Some small interface changes are expected on the future as we understand better the use cases.