removed InvalidCardNumber and changed CardNumber over to inherit from Struct. Also removed CardProcessor.valid? in favor of CardProcessor.find_errors to send errors along with CardNumber.
changed tests to reflect CardNumber.errors and changes to valid?