Remove sslhaf_suites.h, will be autogenerated on each build
Remove a redundant indentation
Refactoring and code tidyup in preparation for future additions

* Renamed a number of variables in sslhaf_cfg_t in preparation for more
  variables in future.  Also some name changing:
    cslen -> suites_len
    compression_methods -> tcompmethods as it is a printable string
    extensions -> textensions as it is a printable string
* A number of stack variables in decode_packet_v3_handshake are renamed
  in order to make their purpose clearer thus code flow more readable.
  Using names such as: msg_len, section_to_go, sub_section_to_go
* Reuse some counter/offset variables as their naming eg. section_to_go
  as there may be many sections in a message, and this usage helps the
  reader to understand the code
* Standardise on usage if array indexing instead of deref pointer +
  offset when combining multiple array elements into a numeric value,
  for example: *(p + 1) -> p[1], numerous usages of the * operator
  remain where they are trivial
* mylen -> msg_to_go, make this variable follow the progress of 'p'
  more closely, eg. when p is incremented, decrement msg_to_go straight
  away instead of a large decrement at the end of a while loop
New pluggable function for freeing snprintf buffers, default constructors

* Because the allocator used to allocate memory in snprintf_fn may be
  different from the one used in alloc_fn, allow a special free function
  for snprintf buffers.
  Signature is same as free_fn, so user may just reuse that as is the case
  in the default pluggable functions.
* Add default constructors for sslhaf_cfg_t, which use default pluggable
  functions
Support deeper inspection of TLS, particularly SNI extension

With this feature comes a number of structural changes.

* sslhaf_cfg_t::suites now becomes an array of pointers to a
  suite description object that contains a nice name field and a
  key length field.  This table is auto generated from the
  suites.csv document located in the source tree.
* sslhaf_cfg_t::compression_methods is now an array of objects
  describing the compression method, as of now just the id field
* sslhaf_cfg_t::extensions is an array of objects describing the
  extension, with more detail provided for certain supported
  extensions, as of now just SNI
* streamlined data types used in sslhaf_cfg_t and parsing code,
  in particular using uint16_t or uint8_t for sizes where the
  sizes are sourced from two or one bytes
* standardised use of offset variables to aid code readability.
  offset variables are prefixed with '_to_go' indicating the
  number of bytes remaining in their respective domain
* standardised coding style of bounds and error checking to aid
  readability and resilience to coding errors
* reduced return codes to a smaller set.  additional error info
  added to sslhaf_cfg_t as 'last_error_' fields.  Original OK
  return code remains same, but all errors are now < 0.
* SSLHAF_AGAIN error code added as a special non fatal error code
  to indicate requirement for more data, will add support for
  incremental addition of data in future.
Include sslhaf/sslhaf_suites.c in .gitignore
Support fragmented data

* Allow multiple calls to sslhaf_decode_buffer containing incremental
  amounts of TLS message data.  The return value will be SSLHAF_AGAIN
  as long as there is not enough data to process a message.
* User is provided with two new statistics: input_used_session and
  input_used_total, indicating how much valid protocol data was
  used for parsing in the previous call to sslhaf_decode_buffer, and
  in all calls to sslhaf_decode_buffer.
* Method of buffering is simplistic at this stage. TODO: implement a
  better way of doing this, perhaps using bulk pre-allocations, or
  finish the pagebuf object.