Add many more tests and fix some functionality. Now over 90% statement,
branch, function, and line coverage.
Add more error test cases to get coverage up over 98% and fix a few
things found while doing it.
Refactor the parser to better handle some cases such as compound
selectors. Also fix some issues with descedant and child selector
matching.