Fixes #102: SIGPIPE not disabled on Mac OS X/*BSD

The order of preprocessor defines in librabbitmq/unix/socket.h prevents
DISABLE_SIGPIPE_WITH_SETSOCKOPT from ever being defined, and thus
SIGPIPE not being disabled correctly. This fixes that error.
Adding vim modelines to help with source formatting
Formatted source code with astyle utilty
Updating license year
Ignoring YouCompleteMe config file
Add amqp_login_with_properties function

Allows clients to specify arbitrary properties when logging on to the
broker
Add plumbing for SSL/TLS support

This change abstracts out the networking functions so that the
user can provide an SSL/TLS implementation.

Callback functions replace `writev()`, `send()`, and `recv()` (there
is also a callback for error reporting). The default interface remains
unchanged. If the user wants to create a SSL/TLS connection they first
negotiate the connection and then use the new function
`amqp_set_sockfd_full()` to provide the networking implementation for
their SSL/TLS library. The user may provide an optional pointer to data
that is passed through to the networking functions.

Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
Implement SSL/TLS over CyaSSL, GnuTLS, OpenSSL & PolarSSL backends

Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
Reduce allocations in SSL writev implementations

This change reduces memory allocations by retaining the writev buffer
across invocations. Memory is only freed/allocated if the buffer too
small.

Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
Add amqps:// support to the URL parser

Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
Update polarssl.m4

1. Update license to match the rest of the project

2. Update library check (similar to previous change in popt.m4)

Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
Fix non-SSL build in the tools directory

Also reduce OpenSSL requirement to 1.0.0 (0.9.8 would probably be fine
as well).

Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
Adding support for SSL to CMake build system
Changing return type on amqp_socket_writev to match fn ptr type
Define `ssize_t` for MSVC builds

Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
Switch from stdbool.h to amqp_boolean_t

Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
Add checks for Unix-specific header files

Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
Use `_stricmp` instead of `strcasecmp` for MSVC

Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
Cleanup CMake build a bit

1. Add checks for Unix/Linux-specific header files (similar to
configure.ac)

2. Added a check for the `-std=c99` flag. It appears that some of this
code uses C99 and compiling without this flag produces quite a few
warnings.

Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
Add SSL/TLS examples

Signed-off-by: Michael Steinert <mike.steinert@gmail.com>