add xpath support

* addresses #176
* this should be considered preliminary support
* unit tests added showing the kinds of supported syntax
* documentation to come
* rewrote some mechanic.js stuff, that will need to be refactored and pushed back to mechanic.

but have a look and give it a try!