Add a class cache to avoid runtime extend calls

 * Strainer has a class cache that creates Strainer subclasses for each filter
   set that is used on .create calls.
 * Context now creates a list of filters and passes this to Strainer.create to
   utilize the class cache in almost all use cases.
 * If add_filter was called after a render, then the method cache may still be
   invalidated.

Conflicts:

	lib/liquid/strainer.rb
Strainer test now works on 1.8
Correct if-statement nodelist.
The nodelist returned by all tags is a list of containing nodes, except for the if tag.  This correct that inconsistency
Update against failed cherry-pick
Add a test for corrected if-nodelist
Merge pull request #3 from dntj/master

Add a test for corrected if-nodelist
Support for passing variables to snippets in subdirs

Now you can use "include 'some/snippet' with variable".
allow drops to optimize loading a slice of elements
add another test showing equivalent functionality
move slice_collection optimization to utils
Update history log

Conflicts:
	History.md
Allow rbx failure and not 2.0.0
Add ruby 2.1 on travis
don't make original slice_collection_using_each private
Merge branch 'class_cache' of github.com:wildfireapp/liquid into wildfireapp-class_cache
Add raggi's change to History, remove Ruby 1.8 code from test
Merge branch 'master' of github.com:joost/liquid into joost-master
Remove unnecessary comment, add joost's change to History.md
Merge pull request #282 from Shopify/load_slice

allow drops to optimize loading a slice of elements
Add Tom's slice loading change to History.md