Why do this?
- Gets us up to date with CSS3 best practices
- Removes some markup bloat = faster mobile experience
- Removes some PHP logic from theme functions and templates: every little bit helps in making theming easier
:(first|last|nth)-child selectors don't work in IE8. Is it okay for core to ship without table/list striping on IE8? Contrib can add something like Selectivizr, but do we need to add something like that to core as part of this patch?