These subroutines tell you whether a credit card number is
self-consistent -- whether the last digit of the number is a valid
checksum for the preceding digits.

The validate() subroutine returns 1 if the card number provided passes
the checksum test, and 0 otherwise.

The cardtype() subroutine returns a string containing the type of card:
"MasterCard", "VISA", and so on. My list is not complete; I welcome
additions.

The generate_last_digit() subroutine computes and returns the last digit
of the card given the preceding digits. With a 16-digit card, you
provide the first 15 digits; the subroutine returns the sixteenth.

This module does not tell you whether the number is on an actual card,
only whether it might conceivably be on a real card.

These subroutines will also work if you provide the arguments as numbers
instead of strings, e.g. validate(5276440065421319).
