Use `CSS.supports()` internally (#818)

See #818.

Right. A new PR for this stuff (completely replaces #821, which I've since deleted).

*Just submitting this into a new `supports` branch*

This PR makes the following changes:

* `testProp()` and `testAllProps()` can now be called in the form `testProps(prop, value)`
* This will both test that both the property *and* the value are supported
* If native detection is supported, we'll use that; otherwise we fall back to normal techniques
* Calling either with just one argument will just test for support for the property using normal techniques
* `testAllProps()` was previously an alias for the internal `testPropsAll()`, so had 2 additional undocumented arguments as a result; these are no longer available
* Added some tests to prove the above

I've also updated the tests for `flexbox` and `flexboxlegacy` to show how it can be used in the wild. We'll still need to update all other relevant tests.