Implement label support for usecols in read_table "c" engine
``pd.read_table`` can make use of ``usecols`` to reduce the memory footprint. ``usecols`` supports a list of labels, but this is only supported on the "python" engine. Using ``usecols`` with the "c" engine will result in the following error:

```python
>>> pd.read_table('/nonsense', sep=':', usecols=['test'])
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 646, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 389, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 730, in __init__
    self._make_engine(self.engine)
  File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 923, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)
  File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 1434, in __init__
    raise ValueError("Usecols do not match names.")
ValueError: Usecols do not match names.
```

``usecols`` works instead with labels if you specify the python engine manually.
We should implement ``usecols`` with labels also for the "c" engine.
The python engine is way slower than the "c" engine, and since it allocates the buffers in python, is actually much more wasteful also in terms of memory usage despite "usecols" being supported.