Feature/selectors

Add support for the following selectors in:
- [x] a > b
- [x] a + b
- [x] *
- [x] .a
- [x] #a
- [x] a.b
- [x] a#b
- [x] .a.b
- [x] a:first-child
- [x] a:last-child
- [x] a:nth-child(num|even|odd)
- [x] a[attr='val']