pup redone

Added:
* psuedo classes
   :empty
   :[first/last/only]-child
   :[first/last/only]-of-type
   :contains("text")
* quote enclosed attr selectors
* '+' and '>' intermediate selectors