Implements some LinQ functions for ReactiveCollection

Implements some basic LinQ functions for reactive derived collections to enable the scenario proposed by @Haacked in #317. For now, the functions implemented are `Select`, `Where` and `OrderBy`.

I think that it would be quite beneficial to implement a full suite of reactive linq extensions (particularly useful ones coming to mind are `Max`, `Min`, `Sum` for example). However, I don't know how hard it would be to modularise the `ReactiveDerivedCollection` implementation, and whether the need to aggressively materialise collections (in order to conserve the order) would be too costly.

Also, I was wondering what happened to the type changes tracked in #267? It would be useful to have a sound type system to implement a Reactive Linq™