Support CSS2 background-position keyword and percent values

Fixes #3288. 
There is still some work left to do for the shorthand property before we can close out #1997.

(This could also be a series of guards to reduce one level of indentation.)