Implemented storage backends

Main Author Julien Blanc
This patch is a first try at implementing a mechanism to provide
storage backends in replacement of the default one.

This is done through the modbus_storage_backend_vfptable which defines
all functions that needs to be implemented by the callbacks.

The structure passed to modbus_reply is otherwise opaque and passed back
to the callbacks.

The default backend has been updated to be compatible with these changes.

Note : this patch breaks the ABI but tries to keep source compatibility

Error handling moved to the custom request handler as suggested by Daniel
Kirkham.