Feature/selectors

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