ENH: partial string match in query
- [x] closes na (once proposed in #8749 but not implemented so far)
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

This PR proposes to add partial string matching functionality to `query` method. In the proposed implementation, a query like `df.query('"alice" in person_name', partial_str_match=True)` returns rows with 'person_name' containing 'alice' in them. For other kind of queries (e.g. `'["alice", "bob"] in person_name'` or `'age == 20'`) with `partial_str_match=True` or those with `partial_str_match=False` (which is set to default for backward compatibility), results as before are returned.