Support CSS keyword values (aliases and non-transitional)

This patch is a replacement for the "support initial keyword" patch. Turns out it wasn't too big a step to generalise it to arbitrary keywords for animatable values.