Percentage strings for width/height

Changes to address #402. If a string is passed for a height/width, it is checked for being formatted as a percentage, and applied as a relative dimension of the parent.

Supports negative percents, along with whole integer or floats for the numeric value. Any other non-matching string value will be ignored.

Given that behavior of ignoring invalid strings, are there other cases anyone can think of that we'd want to handle out of the box to make it simpler and kinder? Looking over it now, I'm thinking that maybe stripping whitespace might be a good idea, so someone could say "50 %" and it would still work... but I don't want to get too crazy trying to guess what they're doing.