BUG/ENH: Add fallback warnings and correctly handle leading whitespace in C parser

Closes #6607, #3374

Currently, specifying options that are incompatible with the C parser in `read_csv` and `read_table` causes a silent fallback to the python engine. This can be confusing if the user has also passed options that are only supported by the C engine, which are then silently ignored. (See #6607)

For example, the commonly used option `sep='\s+'` causes a fallback to python which could be avoided by automatically translating this to the equivalent `delim_whitespace=True`, which is supported by the C engine.

There are some issues with the C parser that need to be fixed in order not to break tests with `sep='\s+'` which previously fell back to python:

The C parser does not correctly handle leading whitespace with `delim_whitespace=True` (#3374).

There is a related bug when parsing files with \r-delimited lines and missing values:

```python
In [5]: data = 'a b c\r2 3\r4 5 6'

In [6]: pd.read_table(StringIO(data), delim_whitespace=True)
Out[6]: 
    a  b  c
0   2  3  4
1 NaN  5  6

[2 rows x 3 columns]
```

Changes in this PR:
- warn (new class ParserWarning) when C-unsupported options cause a fallback to python
- translate `sep='\s+'` to `delim_whitespace=True` when there are no other C-unsupported options
- raise ValueError when `sep` specified with `delim_whitespace=True`
- copy tests in ParserTests that fall back to python to TestPythonParser; leave copies of these tests in ParserTests with the assertion that they produce a ParserWarning

- fix handling of leading whitespace in the C parser (#3374) (add test)
- fix bug in handling of \r-delimited files (add test)