for our current use case when generating keys with new mnemonics we don't pass in a withdrawal address, therefore need to make it optional. left it optional for both commands though in case we do want to change it in our current implementation. if no withdrawal address is passed in it is instead derived from the withdrawal public key
[X] add new command to generate new mnemonics
[X] make withdrawal address optional *
[x] add tests
for our current use case when generating keys with new mnemonics we don't pass in a withdrawal address, therefore need to make it optional. left it optional for both commands though in case we do want to change it in our current implementation. if no withdrawal address is passed in it is instead derived from the withdrawal public key