Merge pull request #76 from speedplane/master

Fix Unicode Bug + Add GitIgnore + Add Debug Flags
Removed: .gitignore
Fixed: crash on invalid chr number.
Merge branch 'euske-main/master'
Remove the dependancy on python2. Also, allow tests to be run on cygwin by checking for it, and converting unix2dos line endings.
Merge branch 'fix-makefile'
There are a number of relatively complex changes here. Comments are in order of where the change appears.

1.
When detecting text in a horizontal line, we already add a space between words if separated by more than word_margin apart.  However now, we only do it if there is not already an existing space. This prevents multiple spaces being placed between words.

2.
Detect a horizontal line if the line is zero width. This improves our detection of horizonal lines when looking for both horizontal and vertical.

3.
Don't detect a vertical line if the previous letter is whitspace. Prevents double spaces being caught as vert lines.

4.
Improve upon an unfortunate O(N^2) algorithm which I have seen taking many minutes to execute.  Unfortunately, while the "fix" reduces algorithmic complexity, it isn't technically correct, so we only do it when we know things will take a long time.
More fixes to layout.  The compute neighbors function for horizontal lines is only intended to find neighbors on differing lines. However, it's entirely possible that horizontal neighbors could appear.

This commit finds horizontal neighbors in a horizonal line and merges them together into a single horizontal line if necessary.  This leads to much better text extraction  if the PDF was created in a funky way.

For example (test case coming), I have seen PDFs which are written almost like vertical columns, but the text is entirely horizontal.
Merge in changes from master.
Convert _text to get_text to avoid accessing private attributes.  Fix a bug cconcerning vertical alignment of whitespace.
Add a bounds check and modify this test.
Resolve conflicts.