pup redone

Added:
* psuedo classes
   :empty
   :[first/last/only]-child
   :[first/last/only]-of-type
   :contains("text")
   :nth[-last]-child(n|odd|even|3n+1|n+2)
   :nth[-last]-of-type(n|odd|even|3n+2|n+2)
* json{} attr keys moved up a level
* quote enclosed attr selectors
* '+' and '>' intermediate selectors