Unit tests

I've written some basic unit tests, as I've been looking into using HHVM for some projects and wanted to verify basic operation.

For code coverage, I didn't cover excluding/not excluding media queries as it didn't seem to do anything either way. It seems like the CssSelector to XPath converter doesn't support media queries. The formatting changes to the specificity chunk loop were made because it was confusing the code coverage analyser. Aside from that, there is full superficial code coverage.

The library was fully compatible as-is with HHVM 3.1, except for an inconsistency in the uksort, so I made the sort function compatible. See https://github.com/facebook/hhvm/issues/1781