Split the unit tests up and started to reorganize them
The core tests should not rely on the default funtionality directory anymore
Major rewrite. First optimization implementation.
Altered the optimization engine so that it handles more cases.
Restructure and clean up
Made it possible to disable the optimization and added some benchmark tests
Added a notice about the alpha nature of this 0.2.0 branch. We need to rewrite parts of the documentation and do some further testing before this will become the master version.
Moved the dictionary look up into a function of its own. This allows us to use the same logic to call dictionary functions from within a dictionary function, by using the convenient `this.call` function.

Usage example:

    this.call('isSet', true);

First argument is the name of the key in the dictionary, the second argument is the value.

Neat stuff like the error handler should work correctly if we access the directory from within the directory like this.
Code clean up: Removed some unnecessary parentesis.
Added a run time context that will be passed to the resulting Pursuit matching-function. This allows us to have a shared run time context without exposing internal stuff like the dictionary.
Changed the name of the localScope variable to local. Makes for shorter lines in the code.
Moved some code around and updated and wrote some jsdoc documentation.
Removed the benchmark results.csv file from the project
Updated the param values in some of the jsdoc and test if an value is a string before checking its value in the contains dictionary function
Moved the optimization code to the bottom of the file
Pass the result of the compileQuery function through the optimization as well. This ensure that the simplest operations are put up front, so the optimized output is actually faster in more cases.
Changed the benchmark test to use a static data set; The script that create the static data set is included. Also, the benchmark test now check for something a bit more complicated.
Updated the documentation.
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.)
Merge pull request #1 from gausby/v0.2.0

V0.2.0