Refactored registration and invoice modules

Refactored the registration and invoice modules to open up more
functions. This not only makes the code more easier to read and
understand but also setups the code for future enchancements such as the
retry queue for invoice creation calls to baron. The legwork for
skipping non-paying winners at the end of an auction has also been setup
but is not complete.