* port changes from dleq branch * adjust tests * fix tag serialization * refactor p2pk and secrets into a new Protocol class * clean up code * refactor p2pk types from base * test second refund pubkey