Add further identification methods + some bugfixes

* Added API version. The server can now be queried for this, plus what sensors and actuators are available.
* Some refactoring - FCGI_RejectJSON now requires a description to be provided. 
* Fixed potential issue with the dump function if SENSOR_DATABUFSIZ != SENSOR_QUERYBUFSIZ (would miss writing out the last few data points)
* The dump function now forces a download via the content-disposition header. 

Potential refactor todo: Calls to  FCGI_RejectJSON/FCGI_RejectJSONEx are automatically logged along with the description (reason) - remove redundant logging in handler functions.