Poor HDFStore.select performance in case of empty result
`HDFStore.select()` becomes extremely slow in case when condition is not met in the HDF5 file.

For example:

```
### Preparing data
NUM = 5000000
COLS = 100

IDX = np.random.random_integers(0, 100000, size=NUM)*10
df = pd.DataFrame(np.random.randn(NUM, COLS), index=IDX)

### Save: ~4GB uncompressed
st = pd.HDFStore('tmp.h5')
st.append('data', df)
st.close()
del df

### Reading
st = pd.HDFStore('tmp.h5')
### First call is usually slower, perhaps the indices are being loaded in memory, so - skip it
df = st.select('data', where='index==%d' % (IDX[1000]))

%time df = st.select('data', where='index==%d' % (IDX[1000]))
print len(df)

%time df = st.select('data', where='index==55')
print len(df)

%time df = st.select('data', where='index==-1')
print len(df)

st.close()
```

It gives 8.7s and 1.1s for empty results versus 11.2ms for existing data:

```
CPU times: user 2.6 ms, sys: 8.58 ms, total: 11.2 ms
Wall time: 11.2 ms
50
CPU times: user 1.15 s, sys: 1.82 s, total: 2.97 s
Wall time: 8.73 s
0
CPU times: user 433 ms, sys: 649 ms, total: 1.08 s
Wall time: 1.11 s
0
```

In case when the file is relatively big(~10s of GB, compressed), the call of `select` with a "wrong query" can take up to a minute in comparison with several tens of millisecond. These are some numbers for my real data:

```
>>> %time df = st.select('data', 'aid=18')
CPU times: user 61.7 ms, sys: 23.2 ms, total: 84.8 ms
Wall time: 84.4 ms
>>>print len(df)
4281

>>> %time df = st.select('data', 'aid=-1')
CPU times: user 35.7 s, sys: 8.55 s, total: 44.3 s
Wall time: 42.2 s
>>> print len(df)
0
```

My versions:
pandas: 0.15.2
Cython: 0.21.2
numpy: 1.9.1
tables: 3.1.1
