Only display card details if the flags are true, and the matching values exist.

The old code would display an empty span if the flags and data didn't line up. For example if the expiry date existed on the payment method, but the flag said not to display it, the span would still get built. This prevents that.

Also do some code cleanup of related lines.
Further cleanup the boolean comparisions, and make a few of the if statements easier to read
Card expiry is a date, so comapre against SwatDate
Update Expiration Date display as text to use a printf
Further simplify the logic
Move more of the display flag checking into displayInternal - further simplifying the logic.
better name for the array of displayed parts.

It was display_details, as was a variable we passed around the methods.
Make displayAsText consistent with displayInternal()

card number now will only be displayed if the display part is true and display_details is true.
Go back to showing the card number regardless of display_parts.

This was the historic behaviour which I didn't intend to change.
Don't bother nesting the if statments.
Merge pull request #34 from isaacgrant/payment-method-display-cleanup

Only display card details if the flags are true, and the matching values exist.