Pass existing tests, add 16 additional tests & add the majority of CSS2

Hi there,

We wanted to use Pynliner over at Rover.com, but it didn't quite handle all of the CSS selectors we wanted.

Pynliner itself is sufficient, but soupselect.py really didn't work very well.

We've improved it and added several test cases for our needs.

Let us know if there're any changes that need to be made from a style perspective.

We've added support for:

- Adjacent sibling selector (A + B)
- Immediate child selector (A > B)
- Multiple attribute selectors (A[foo="bar"][baz="qux"]
- Multiple descendant selectors (A B C)
- :first-child & :last-child pseudo class selectors