Fix some indentation issues.
Strip trailing spaces.
Replace tabs with spaces.
Add a frame structure for each message.
The frame consists of a header, the payload size and a message payload.

This structure is only a helper struct for lib internals, to be able to use dynamic payload sizes.
Over the air only the header and the payload (without the payload size) are transmitted.
Extendend the frame struct to allow setting payload.
Define MAX_FRAME_SIZE as a makro with value of '32' (Bytes).
Use the RF24NetworkFrame type for internal management of frames
Changes in code:
    - internally use the introuduced RF24NetworkFrame type to describe and manage header and payload.
    - keep the write and read API for backward compatibility.
    - make needed changes in some functions to be able to use the RF24NetworkFrame and circular buffer.
    - extend the circular buffer class with some functions
        - front()
        - isEmpty()
        - isFull()
    - update copyrith

TODO:
    - check if the code is supported in arduino
    - check for memory lecks
    - check for memory space usage (arduino)
    - implement automatic fragmentation and reassembly of large payloads
    - two independent tx and rx (circular buffer) FIFOs
    - clean up code
        - remove not need parts
Many changes in the fragmentation

FIXME: problems with reassembly data structure
Change isEmpty test
Delete not needed data structure
Fully functional fragmentation implementation for large payloads.
Fragmentation is transparent to caller application.

TODO:
        - multicast fragmentation
        - test with multiple nodes in a larger network
        - use a circular queue for the frame_queue data structure
        - use a LRUCache data structure for the frame reassembly
        - lower memory consumption
        - arduino porting
        - cleanup code
        - remove redundant and innecessary code

- Based on IPv4 fragmentation https://tools.ietf.org/html/rfc791.
- Tested only on Raspberry Pi, may not work in Arduinos due to memory usage
  Tested only with two raspberris using NRF24L01+ 10 meters appart.
- The lib is capable to detect if the message payload is bigger than frame_size-sizeof(Header)
  and split the payload into chuncks and send them separately.
- This commit introduces two new flag types:
        - NETWORK_MORE_FRAGMENTS
        - NETWORK_LAST_FRAGMENT
- As of IPv4 fragmention this flags are used to mark the frames to notify the receiver if more
  fragments will come or this is the last fragment.
- The previous _write() function to transmit the frames is used.
- Changes in payload size management were made to allow dynamic payload sizes without the need
  to define a field in the header.
- Introduce a new struct type "RF24NetworkFrame" for better frame handling inside the lib.
  This type encapsulates the header, the current size of the payload and a (fixed size) array
  containing the payload.
- The frame_buffer data structure was changes in favor of a std::queue for better handling.
- Make some changes renaming variables and defining the values.
- Use a std::map with double key (header.to_from,header.id) to identify the incoming fragments,
  allowing the reassembly of multiple transmission simultaneously.
- The reassembly of frames hapens in the enqueue(frame) function.
  Based on the fragment_id and header.id the fragments are handled diffently and in the end
  the completely assembled frames are queued in the frame_queue presenting them to the calling
  application.
- Introduce a new debug flag to print fragmentation debug messages.
- Use definitions for static values like frame size or payload max size.
- Strip trailing spaces and fix some indentation issues.
Fully functional fragmentation and reassembly implementation for large payloads.
Fragmentation is transparent to calling application.

TODO:
        - multicast fragmentation
        - test with multiple nodes in a larger network
        - use a circular queue for the frame_queue data structure
        - use a LRUCache data structure for the frame reassembly
        - lower memory consumption
        - arduino porting
        - cleanup code
        - remove redundant and unnecessary code

- Based on IPv4 fragmentation https://tools.ietf.org/html/rfc791.
- Tested only on Raspberry Pi, may not work in Arduinos due to memory usage
  Tested only with two raspberries using NRF24L01+ 10 meters apart.
- The lib is capable to detect if the message payload is bigger than frame_size-sizeof(Header)
  and split the payload into chucks and send them separately.
- This commit introduces two new flag types:
        - NETWORK_MORE_FRAGMENTS
        - NETWORK_LAST_FRAGMENT
- As of IPv4 fragmentation this flags are used to mark the frames to notify the receiver if more
  fragments will come or this is the last fragment.
- The previous _write() function to transmit the frames is used.
- Changes in payload size management were made to allow dynamic payload sizes without the need
  to define a field in the header.
- Introduce a new struct type "RF24NetworkFrame" for better frame handling inside the lib.
  This type encapsulates the header, the current size of the payload and a (fixed size) array
  containing the payload.
- The frame_buffer data structure was changes in favor of a std::queue for better handling.
- Make some changes renaming variables and defining the values.
- Use a std::map with double key (header.to_from,header.id) to identify the incoming fragments,
  allowing the reassembly of multiple transmission simultaneously.
- The reassembly of frames happens in the enqueue(frame) function.
  Based on the fragment_id and header.id the fragments are handled differently and in the end
  the completely assembled frames are queued in the frame_queue presenting them to the calling
  application.
- Introduce a new debug flag to print fragmentation debug messages.
- Use definitions for static values like frame size or payload max size.
- Strip trailing spaces and fix some indentation issues.
Merge branch 'feature/fragmentation_v2' of https://github.com/reixd/RF24Network into feature/fragmentation_v2
Remove not needed CircularBuffer data structure
Merge pull request #13 from reixd/feature/fragmentation_v2

Merge Pull request from https://github.com/reixd 
Feature(s): Extended support for very long payloads with fragmentation/reassembly