Cleanup: Don't pimpl private classes.

Authored by mwolff.

Description

Cleanup: Don't pimpl private classes.

The IFilterStrategy implementations are exported only to have
access to them from unit tests. The header is not installed and
thus we don't need to pimpl the CompilerFilterStrategy.

Furthermore, we can hide the match function and give it static
linkage.