Add FilterableMixin

Works in a similar way to the SortableMixin.

Mix this into an ArrayProxy, define the filterProperties and the array
will be filtered to only include the objects whose filterProperties are
truthy.

You can get more advanced filtering by defining a custom
filterCondition. The filterCondition is used to determine if the object is
to be included in the filtered list.  Any item properties used in
the filterCondition will need to be lised in filterProperties.
Added additional tests to FilterableMixin

These verify that the FilterableMixin works with bound content and updates correctly when the content is swapped out.
Combine Filterable and Sortable into one w/tests
Add some basic documentation
YUIDoc should refer to ArranableMixin
ArrangableMixin.filterAllProperties
filterProperties can take a key/value or a property name
Pass your own sortFunction
Assume sortFunction will not change
Delete FilterableMixin
Filter by value comparision, regex match, or function

filterFunction can be overridden to correctly process
any object/key/value pair.

This commit also removes some duplicate tests
ArrangableMixin should be required
Deprecate Ember.SortableMixin
Arrangable => Arrangeable
Filter against false property values
Rename some tests
use createWithMixins()
Add some docs
Merge remote-tracking branch 'twinturbo/arrangable-mixin'
Cherry pick a17a7560a433a1a457b848c2abbca1e0ce0592fd from ember.js/master

fixes for model class toString in certain routing cases.

https://github.com/emberjs/ember.js/issues/1625

SHA			a17a7560a433a1a457b848c2abbca1e0ce0592fd
AUTHOR		tomhuda
DATE		January 1, 2013 6:36 PM
SUBJECT		Eagerly generate toString() of all classes at boot
PARENT		9d063d951d4340f2c3d336a3b08b57153523da13
TREE		0fb83a9138666fff997f53a5609c4666ea051c4a