Support sorting the collection in a for loop tag.

This is the updated version of #101. I am no longer at LivingSocial so can't push to the original repository.

I also incorporated the change from @mixonic to support sort_by on attributes on an object that responds to to_liquid.

You can specify ascending or descending by passing "order:ascending" or
"order:descending". You can specify what attribute you want to search on
by using the "sort_by" attribute.

So "{% for item in collection sort_by:name order:descending %}" will
iterate through the collection sorted by name in descending order.