Hookup reset flow (pt1) (bug 1003882) 

Just to add some context to this. Rather than continue with this branch (which is big already) I'm going to work on making this work alongside webpay separately so consider this part 1.

If anything is majorly wrong then I'll definitely fix it here. If not it'll happen in a follow up.

We made a legend of error codes because those codes were meant more for developers rather than users. When a user triggers PIN_RESET_ERROR we probably want to say something general "there was an internal server error, please try again." However, when QA is testing the site we want to know what the error codes are.