Refactoring fixes

Updated @apneadiving's refactoring branch to fix existing specs and bring up to snuff with master.

Please review mailbox_spec.rb:126 and ensure test is capturing expecting behavior.

Huge :thumbsup: to @apneadiving for some nice updates