Fixed bug in Symbol filtering.
Fixed bug in Symbol filtering.

If you called filter on an overloaded symbol, it tried to
return itself if no alternatives were filtered out. The test
being performed, however, would only ever be true if the
list call was to the (non-existent) "filterConserve", which
is to say that in general,

  xs ne xs.filter(_ => true)

The upshot is that we were creating a new symbol on every filter
call to an overloaded symbol. To make completely sure this would
be a performance winner, I also eliminated the closure and perform
the filtering locally.

slothspot/scala,felixmulder/scala,scala/scala,martijnhoekstra/scala,lrytz/scala,shimib/scala,jvican/scala,jvican/scala,felixmulder/scala,martijnhoekstra/scala,lrytz/scala,martijnhoekstra/scala,slothspot/scala,lrytz/scala,felixmulder/scala,felixmulder/scala,lrytz/scala,shimib/scala,martijnhoekstra/scala,slothspot/scala,slothspot/scala,felixmulder/scala,jvican/scala,felixmulder/scala,jvican/scala,felixmulder/scala,slothspot/scala,shimib/scala,scala/scala,shimib/scala,shimib/scala,jvican/scala,lrytz/scala,scala/scala,shimib/scala,martijnhoekstra/scala,scala/scala,scala/scala,jvican/scala,jvican/scala,scala/scala,martijnhoekstra/scala,lrytz/scala,slothspot/scala,slothspot/scala