Reorder Card model fields, add controllers placeholder

Instead of having the card model handle its tab-delimited
representation, a controller will take care of that (nice if there are
multiple ways to represent a card).  Since I'll be returning card
results as json, the first controller will use ujson
Add loyalty parser and tests

Loyalty only makes sense in the context of planeswalkers right now
(I'm sure the next Un-set will correct this hasty assumption) so
the parser returns None for cards without the 'Planeswalker' type.
Because the next Un-set will surely have fractional power loyalty,
and to keep the integer value system consistent, loyalty also uses a
scale factor (with a default of 10)
Cleanup views cruft (still a dummy method)
Add self-referential rules text parser.  Two tests currently failing

This parser creates a version of the card's rules text where instances
of the card's name in the text are replaced with ~, allowing searches
for cards that perform a certain action without knowing the card name
in advance (such as "When ~ comes into play" for ETB effects)

testDoesNotMatchSubstring and testEscapedReplacement are currently
failing because the replacement is a simple string.replace() and
don't take whitespace or escaping into consideration.