Merge pull request #1762 from zhangzl2013/wfreerdp

wfreerdp: fix incorrect line color.
Merge pull request #1826 from Hobby-Student/master

fix FreeBSD compile errors
Merge pull request #1844 from caramorsimon/tokenrouting

Test for CRLF (0x0D0A) termination on the routing token
Merge pull request #1845 from SBoyNumber1/DiskDrives

Removed autosharing of all disk drives during redirect of any drive.
Merge pull request #1852 from orosam/auth3fix

Fix misplaced sec_trailer in rpc_auth_3 PDU
Merge pull request #1853 from zhangzl2013/async

wfreerdp: add async input, update, transport and channels' events
Merge pull request #1854 from zhangzl2013/floatbar

wfreerdp-floatbar: fix bug in non-fullscreen mode.
Merge branch 'master' of github.com:FreeRDP/FreeRDP
Add a ringbuffer implementation targetting byte sending

This adds a ringbuffer implementation that targets bytes sending.
The ringbuffer can grow when there's not enough room, that's why it's
not thread-safe (locking must be done externally). It will be shrinked
to its initial size as soon as the used bytes are the half of the
initial size.
Print function name when emiting an error
Fix OOM situation
Allow transport_write calls to be non-blocking

This big patch allows to have non-blocking writes. To achieve
this, it slightly changes the way transport is handled. The misc transport
layers are handled with OpenSSL BIOs. In the chain we insert a
bufferedBIO that will bufferize write calls that couldn't be honored.

For an access with Tls security the BIO chain would look like this:
  FreeRdp Code ===> SSL bio ===> buffered BIO ===> socket BIO

The buffered BIO will store bytes that couldn't be send because of
blocking write calls.

This patch also rework TSG so that it would look like this in the
case of SSL security with TSG:
                                         (TSG in)
                              > SSL BIO => buffered BIO ==> socket BIO
                             /
FreeRdp => SSL BIO => TSG BIO
                             \
                              > SSL BIO => buffered BIO ==> socket BIO
                                        (TSG out)

So from the FreeRDP point of view sending something is only BIO_writing
on the frontBio (last BIO on the left).
Make ringbuffer C89 aware for VC
Fix some corner cases in ringbuffer and make unitary test have no leak
Updated license headers
Fix ringbuffer_write() to use const BYTE * instead of const void *
Fixed invalid declaration and missing argument
Add .gitignore files for test generated files
Correctly export ringbuffer function and fix a warning
libfreerdp-codec: add xcrush rolling hash chunker