Separate parsing implementation from setter in SearchParseElement

This, in order to allow reuse of parsing logic by plugins or other internal parts
can we name all those `public void parse(XContentParser parser)` and make them not static?