Add Makefile

Cargo can't do everything yet
Clean up the code a bit:

- Move extension methods into default methods on Selector
- Add some rustdoc comments

Add some documentation