Several improvements and additions

 * First commit: adds an option to use "1" as start bit, and "0" as stop bit (the opposite of an standard UART)
 * Second commit: uses 64 bit long longs instead of integers to store decoded bits. Neccessary for comms which use long packets which cannot be divided in smaller chunks.
 * Third: adds the Cygwin result executable to .gitignore
 * Fourth: generates expected bits strings outside of the main loop. By analysing the original code I noticed that only two different values were being used: one with the sync sequence, and another with data
 * Fifth: using long packets lengths yielded an error. Apparently the calculated buffer size was too small for anything over ~16 bits. I modified the code to employ the expected buffer size instead. For small packets no error was thrown actually because the "if" which checked if the buffer was too small to perform well resized it.
 * Sixth: forgot to change a few variables which caused some results to get trimmed to 32 bits. Also undid some unnecessary changes.
 * Seventh: adds decoding for UIC-751-3 (European ground-train-ground communications). It adds a MSB-first mode, which I thought I was going to need for UIC-751-3 but was actually not needed. I've left it anyway in case it is useful.