Allow . to be used for a blank attribute.
Fixed isBlank() by switching it to using equals() rather than ==.

Optimized the Card string parser to return the blank card rather than
creating new instances.
Added getLocations() for getting all of the locations used in a Laydown.
Redesigned Board to use an overlay system which allows easily reverting experimental laydowns.