Integrate mechanic.js, closes #20

This work is not finished yet, I'm putting it up here so that it's more visible.

So far, it includes the following items:
* Enable mechanic.js selectors for elements
* Provide backwards compatibility for `view.$` and `waitForElement`
* Refactor the client side code into multiple files
* Refactor JS compilation out of `feature.rb`