smb: Added configuration options for SMB

Added --enable-smb and --disable-smb configuration options for the
upcoming SMB/CIFS protocol support.
smb: Added initial source files for SMB

Added the initial source files and updated the relevant project files in
order to support SMB/CIFS.
smb: Added SMB connection structure

Added the connection structure that will be required in urldata.h for
SMB/CIFS based connections.
smb: Added internal SMB definitions and structures

Added the internal definitions and structures necessary for SMB/CIFS
support.
smb: Added SMB protocol and port definitions

Added the necessary protocol and port definitions in order to support
SMB/CIFS.
tests: Disable test 1013 until SMB is fully added
smb.h: fixed picky compiler warning

smb.h:30:16: error: comma at end of enumerator list [-Werror=pedantic]
smtp: Fixed dot stuffing being performed when no new data read

Whilst I had moved the dot stuffing code from being performed before
CRLF conversion takes place to after it, in commit 4bd860a001, I had
moved it outside the 'when something read' block of code when meant
it could perform the dot stuffing twice on partial send if nread
happened to contain the right values. It also meant the function could
potentially read past the end of buffer. This was highlighted by the
following warning:

warning: `nread' might be used uninitialized in this function
transfer: Fixed existing scratch buffer being checked for NULL twice

If the scratch buffer already existed when the CRLF conversion was
performed then the buffer pointer would be checked twice for NULL. This
second check is only necessary if the call to malloc() was performed by
the first check.
transfer: Code style policing

Prefer ! rather than NULL in if statements, added comments and updated
function spacing, argument spacing and line spacing to be more readble.
smb: Added SMB handler interfaces

Added the SMB and SMBS handler interface structures and associated
functions required for SMB/CIFS operation.
smb: Added initial SMB functionality

Initial implementation of the SMB/CIFS protocol.
smb.c: Fixed compilation warnings

smb.c:162: error: comma at end of enumerator list
smb.c:469: warning: conversion from 'size_t' to 'unsigned short',
           possible loss of data
smb.c:517: warning: conversion from 'curl_off_t' to 'unsigned int',
           possible loss of data
smb.c:545: warning: conversion from 'curl_off_t' to 'unsigned int',
           possible loss of data
smb.c: Fixed compilation warnings

smb.c:311: warning: conversion from 'unsigned __int64' to 'u_short',
           possible loss of data
smb.c:425: warning: conversion from '__int64' to 'unsigned short',
           possible loss of data
smb.c:452: warning: conversion from '__int64' to 'unsigned short',
           possible loss of data
smb.c: Fixed compilation warnings

smb.c:212: warning: unused parameter 'done'
smb.c:380: warning: ISO C does not allow extra ';' outside of a function
smb.c:812: warning: unused parameter 'premature'
smb.c:822: warning: unused parameter 'dead'
smb.c: Renamed SMB command message variables to avoid compiler warnings

smb.c:489: warning: declaration of 'close' shadows a global declaration
smb.c:511: warning: declaration of 'read' shadows a global declaration
smb.c:528: warning: declaration of 'write' shadows a global declaration
smb.c: Fixed compilation warnings

smb.c:322: warning: conversion to 'short unsigned int' from 'unsigned
           int' may alter its value
smb.c:323: warning: conversion to 'short unsigned int' from 'unsigned
           int' may alter its value
smb.c:482: warning: conversion to 'short unsigned int' from 'int' may
           alter its value
smb.c:521: warning: conversion to 'unsigned int' from 'curl_off_t' may
           alter its value
smb.c:549: warning: conversion to 'unsigned int' from 'curl_off_t' may
           alter its value
smb.c:550: warning: conversion to 'short unsigned int' from 'int' may
           alter its value
libcurl: Enable support for the SMB protocol

This patch enables SMB/CIFS support in libcurl.
libcurl: Exclude SMB from the protocol redirect

As local files could be accessed through \\localhost\c$.
smb.c: Fixed compilation warnings

smb.c:398: warning: comparison of integers of different signs:
           'ssize_t' (aka 'long') and 'unsigned long'
smb.c:443: warning: comparison of integers of different signs:
           'ssize_t' (aka 'long') and 'unsigned long'