Improved credit card expiration entry experience

Why?

The jQuery masked input plugin breaks form auto-fill tools like 1Password,
making it harder to enter credit info. By shifting to separate inputs
for expiry month and year, autofill works. This has an added benefit of
mapping more directly to the data required by payment processing
entities, requiring less intermediate code to parse input. Adding an HTML5
placeholder demonstrates the correct formatting for expiration dates,
accomplishing the goal of the masked input plugin.

Changes:

- Switched to two fields for card exiration date
- Added HTML5 placeholers to expiration inputs
- Removed jQuery mask plugin (no longer used)
- Added validation on expiration date
- Updated tests and styling

Screenshot: http://cl.ly/MPek/content.png

Note: I wasn't able to get the web framework set up on my machine (at
this time) which means I haven't confirmed the tests are working.
Hopefully this work will at least be a good start.
No longer setting expiry_year to expiry_month (facepalm).
Fix typo; #18

We got a pull request from @imathis for #18. Since it's not ready to
merge automatically, it's a chance for me to learn and practice the
"manual" approach to pull requests. I've fetched his branch, merged
master to it, and this fixes a typo. There are a couple failing test to
address, and then I can actually review the code. :-)
Clean up #18

Here's what I did:

 - Took out redundant getters and modified tests to expect ints
 - Standardized on 'expiration' instead of 'expiry'
 - Reverted to former FORM width, tweaking only expiration field
 - Stuck with pixels for FORM layout (a switch to em should be done as a
   whole, and #66 surely affects this)
 - Show expiration error before CVV to match order in UI