If header_start is given for an asciitable, change default of data_start

This implementation passes all existing tests and all new tests.
However, it is not fully internally consistent. If header_start is
given and data_start is not (and no other default for data_start is set
by the specific reader class in use), then data_start is set to
header_start + 1. This fixes the issue raised in the issue.
However, it is fundamentally impossible to determine the
correct data_start for all cases:
E.g. FixedWidthTwoLines expects a two line header. The default in this class
is to start the data 2 lines after the header. If the header_start is set,
then data_start must also be set for this class to preserve this behaviour.
I have looked at the code for a long time and I am convinced that this
is an ill-defined problem and no algorithmic solution exisits that solves
the issue and works for all possible Reader, which modify
data_start by themselves.

However, almost all tbles are read with simple reader and for those this
is an improvement. In all complex cases people can still supply
header_start AND data_start, just like they would before this patch.

fixes #855
improve automatic setting of data_start
Change data_start update to only exclude fixed_width_two_line
Format, spelling and PEP8 fixes
Finalize documentation for header_start/data_start fix
Merge pull request #1844 from hamogu/fix885

If header_start is given for an asciitable, change default of data_start