Rewritten queries need to be fully walked

Previously, only the top-level of a rewritten query was wrapped.  The full
rewritten tree is now walked and wrapped
Add ConstantScoreQuery and DisMax to profiled queries
Fix NPE when shards rewrite differently

Because shards can rewrite their queries differently (depending on term
dictionaries), it isn't guaranteed that all components will be present in all shards.

Taking the naive approach and just ignoring components that don't exist.
This means we are potentially missing components, if the first shard happens
to be the one that is missing the component.
Collapse the local query, not the original parsed one

We need to collapse the local version of the query, since it may have
new components due to rewriting.  If we use the original parsed query,
we lose timing of all the rewritten components.