[in progress] [ImageDraw] Rewrite of polygon fill algorithm and ImagingDrawWideLine

This PR is **not finished**, do not merge!! Its purpose is just to obtain feedback.

The functions `polygon8|32|32argb` of ImageDraw (file [libimaging/Draw.c](https://github.com/python-imaging/Pillow/blob/master/libImaging/Draw.c)) module don't draw consistent polygons, as can be seen in issues #367 and #463; this is an attempt to solve this problem.

Those functions are now refactored into one function, `polygon_generic`, to remove duplicated logic code (see deecd8a137c1481504fa48bcf41566e51eb5100a).
`polygon_generic` draw polygons using the scanline algorithm, the old implementation were the origin of some inconsistencies in polygons, and while the new implementation it's not technically correct (e.g. it doesn't takes advantage of edge coherency) and have some known bugs (more on this later), it generates more consistent polygons (see cd332fc38a2320207153b73d5fecedee135adb8b).

The function `ImagingDrawWideLine` is responsible of constructing wide lines as a rectangle polygon by obtaining the side ratio of two complementary right triangles, however while the calculations were correct in theory, it doesn't build correct wide lines as seen in #367.
The new implementation of this function (see be09da65078d1368c27354e4c4f1cf7611cfa2e6) construct the line's rectangles with the correct proportion to every side of the line but have some problems with lines of 45º slope, see below.

Some draw tests have been added to `Tests/test_imagedraw.py` with images, check them out to see how the expected behavior is with the new implementations in the covered cases; more tests will be added soon.

List (incomplete) of current known bugs and/or to-do items:
- [ ] Wide lines with a minimal slope (1 pixel) are drawn differently depending if it's oriented horizontally or vertically (e.g. a line from (5,5) - (14,6) is different from a line (5,5) - (6, 14)).
- [ ] Ellipses are not consistent now, some corners can be appreciated in ellipses with enough radius (e.g. an circle with a 100 pixels radius will have visible corners).
- [ ] Define how wide lines with a 45º slope should behave, specifically define if the line's width should be realistic (smaller than the specified by parameter) or fixed to the specified; an example will be added soon.


This dirty script will allow you to test the ImageDraw module without having to write a program for every case (edit the constant DEV_PILLOW_PATH manually): https://gist.github.com/Terseus/750a02722640ae715f96
It have some basic help, some examples on how to use it:
```
1. Draw a line from (5,5) to (14,5) with a width of 3 pixels in an image of 20x20 using the current installed version of Pillow:
$ python tester_draw.py -s 20,20 current line 5,5 14,5 3

2. The same command but with the development version of Pillow:
$ python tester_draw.py -s 20,20 dev line 5,5 14,5 3

3. Draw a square polygon from (2,2) to (8,8):
$ python tester_draw.py -s 10,10 dev polygon 2,2 2,8 8,8 8,2

4. Draw an circle:
$ python tester_draw.py -s 100,100 dev ellipse 5,5 95,95
```

**Edit 1**: Completed description with reasoning about `ImagingDrawWideLine`, the current test cases and known problems.
**Edit 2**: Added a Python script for easy testing of the ImageDraw module.