Raise Liquid::ArugmentError when condition has wrong usage

Condition now raises ::ArgumentError when built wrongly.
This patch make it raise Liquid::ArgumentError instead
to indicate a liquid markup error instead of ruby error.
Optimize checking for interrupts by replacing any? with NOT empty?
Adding tests, spy dependency
Add object profiling in addition to cpu profiling
Merge pull request #380 from Shopify/optimize_interrupt_handling

Optimize checking for interrupts by replacing any? with NOT empty?
Merge pull request #381 from Shopify/add_object_profiling

Add object profiling in addition to cpu profiling
Cache parsed markup parts to avoid repeated calls during template render
Merge pull request #383 from Shopify/optimize_variable_lookup

Cache parsed markup parts to avoid repeated calls during template render
Reduce temporary objects during variable/filter parsing
Optimize block parsing -- don't recreate delimiter, use strings instead of regex
Remove block in favour of for loop to reduce temporary object allocation during variable context resolution
Merge pull request #385 from Shopify/optimize_scope_variable_resolution

Remove block in favour of for loop to reduce temporary object allocation during variable context resolution
Merge pull request #386 from Shopify/optimize_variable_parsing

Reduce temporary objects during variable/filter parsing
Merge pull request #384 from Shopify/optimize_block_parsing

Optimize block parsing -- don't recreate delimiter, use strings instead of regex
Remove unnecessary blank? code
Merge pull request #389 from Shopify/remove_unnecessary_blank_stuf

Remove unnecessary blank? code
Fixing regression from block delimiter enhancement
Merge pull request #393 from Shopify/fix_block_delimiter

Fixing regression from block delimiter enhancement
Merge pull request #341 from curebit/comparation_argument_error

Raise Liquid::ArugmentError when condition has wrong usage
remove .flatten on standard filters