Pursuit Version 0.2.0. Optimization, run-time context and dictionary functions within dictionaries

  * Split the unit tests so that the core engine does not rely heavily on the default dictionary.
  * Pursuit will now throw errors on compile time if input is wrong, and it is possible to return errors from dictionary functions if needed.
  * Added an optimizer that group similar checks and attempt the move the "simplest" checks up front.
  * Made it possible to disable previous mentioned optimization
  * Made a benchmark test that benchmark a query with and without optimization
  * Made it possible to call other dictionary-functions within a dictionary using `this.call(name, value)`
  * Added a "run-time"-context, this allows dictionary functions to check against variables set during compile-time, and makes it possible to implement a instanceOf checker that checks if a given object is an instance of a given object.
  * Updated the jsdoc-documentation
  * Updated the README.md to cover most of the changes. (not 100% coverage, sorry.)