Added Email field, allowed retrieval of card data

Emails are required by European payment processors, and so need a way to be set at profile creation. This merge allows this behavior.

Additionally, there are cases when we want users to be able to edit their payment information. Commonly, an expiration date needs to be updated, or a person has moved and their billing address has changed as a consequence. It is useful, then, to include a feature for retrieving information to present to the user for editing in, say, a web form, and then updating the information on the authorize.net servers.

This merge adds an update() function to the AuthorizedSavedCard object. It also makes lazy properties available for getting information about a card, and allows one to update the cards through these indirectly.

There is a standing issue here-- I have tried to create tests for this and am not able to quite wrap my mind around how the testing framework is configured and how to wield it effectively (I'm new to Unit tests in general, but happy to learn). I could use help on figuring this one out. Therefore, at the moment, the newly created functions do not come with tests. However, the old tests currently pass, and I added the email field to some of the existing tests, where I could find proper places for it. There may be more.