pd.Series.str accessor in pd.DataFrame.query(engine="numexpr") raises TypeError
#### Code Sample, a copy-pastable example if possible

Python 2.7.12

```python
## !pip2 install numexpr --user
import pandas as pd
dfc = pd.DataFrame(map(str,range(10)),columns=['colA'])
dfc.query('colA.str.contains("0")',engine="numexpr")
```
#### Problem description
Cannot use `pd.Series.str` accessor in `pd.DataFrame.query`

### Error Log
```
TypeErrorTraceback (most recent call last)
<ipython-input-10-d6daed1ce1a9> in <module>()
      1 import pandas as pd
      2 dfc = pd.DataFrame(map(str,range(10)),columns=['colA'])
----> 3 dfc.query('colA.str.contains("0")')

/home/shouldsee/envs/jupyter/local/lib/python2.7/site-packages/pandas/core/frame.pyc in query(self, expr, inplace, **kwargs)
   3086         kwargs['level'] = kwargs.pop('level', 0) + 1
   3087         kwargs['target'] = None
-> 3088         res = self.eval(expr, **kwargs)
   3089 
   3090         try:

/home/shouldsee/envs/jupyter/local/lib/python2.7/site-packages/pandas/core/frame.pyc in eval(self, expr, inplace, **kwargs)
   3201             kwargs['target'] = self
   3202         kwargs['resolvers'] = kwargs.get('resolvers', ()) + tuple(resolvers)
-> 3203         return _eval(expr, inplace=inplace, **kwargs)
   3204 
   3205     def select_dtypes(self, include=None, exclude=None):

/home/shouldsee/envs/jupyter/local/lib/python2.7/site-packages/pandas/core/computation/eval.pyc in eval(expr, parser, engine, truediv, local_dict, global_dict, resolvers, level, target, inplace)
    297         eng = _engines[engine]
    298         eng_inst = eng(parsed_expr)
--> 299         ret = eng_inst.evaluate()
    300 
    301         if parsed_expr.assigner is None:

/home/shouldsee/envs/jupyter/local/lib/python2.7/site-packages/pandas/core/computation/engines.pyc in evaluate(self)
     74 
     75         # make sure no names in resolvers and locals/globals clash
---> 76         res = self._evaluate()
     77         return _reconstruct_object(self.result_type, res, self.aligned_axes,
     78                                    self.expr.terms.return_type)

/home/shouldsee/envs/jupyter/local/lib/python2.7/site-packages/pandas/core/computation/engines.pyc in _evaluate(self)
    120             scope = env.full_scope
    121             truediv = scope['truediv']
--> 122             _check_ne_builtin_clash(self.expr)
    123             return ne.evaluate(s, local_dict=scope, truediv=truediv)
    124         except KeyError as e:

/home/shouldsee/envs/jupyter/local/lib/python2.7/site-packages/pandas/core/computation/engines.pyc in _check_ne_builtin_clash(expr)
     29         Terms can contain
     30     """
---> 31     names = expr.names
     32     overlap = names & _ne_builtins
     33 

/home/shouldsee/envs/jupyter/local/lib/python2.7/site-packages/pandas/core/computation/expr.pyc in names(self)
    770         """Get the names in an expression"""
    771         if is_term(self.terms):
--> 772             return frozenset([self.terms.name])
    773         return frozenset(term.name for term in com.flatten(self.terms))
    774 

/home/shouldsee/envs/jupyter/local/lib/python2.7/site-packages/pandas/core/generic.pyc in __hash__(self)
   1814     def __hash__(self):
   1815         raise TypeError('{0!r} objects are mutable, thus they cannot be'
-> 1816                         ' hashed'.format(self.__class__.__name__))
   1817 
   1818     def __iter__(self):

TypeError: 'Series' objects are mutable, thus they cannot be hashed
```

#### Expected Output

#### Output of ``pd.show_versions()``

<details>
INSTALLED VERSIONS
------------------
commit: None
python: 2.7.12.final.0
python-bits: 64
OS: Linux
OS-release: 4.4.0-143-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_GB.UTF-8
LOCALE: None.None

pandas: 0.24.2
pytest: 4.4.2
pip: 19.1.1
setuptools: 41.0.1
Cython: None
numpy: 1.16.3
scipy: 1.2.1
pyarrow: None
xarray: None
IPython: 5.8.0
sphinx: 1.8.5
patsy: None
dateutil: 2.8.0
pytz: 2019.1
blosc: None
bottleneck: None
tables: 3.5.1
numexpr: 2.6.9
feather: None
matplotlib: 2.2.3
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml.etree: None
bs4: None
html5lib: None
sqlalchemy: None
pymysql: None
psycopg2: None
jinja2: 2.10.1
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None
gcsfs: None
</details>
