Several modification to allow smaller code size

This patch was first intented to shrink smews so that it could fit again in a Funcard. Several modification were made to remain below the 8kB code size limit:

* Adds an option to disable coroutines. Only one request can be served at a time, but it saves almost 3 kB of code,
* Modifies the link options so that only used functions are actually linked (using `-ffunction-sections`, `-fdata-sections` and `-Wl,--gc-sections`). This saves a LOT when very simple application are developped by removing most of the dynamic API
* Reordered some data structures so that they are better aligned
* Adds a lot of Funcard avr specific compilation options that diminish the code size by several tens of bytes

Tests have been run on linux and mbed with a 100% success. It should be better to run tests on arduino before merging.