Fix crash on MacOSX 10.7
RF: Add support

This is the first shot of the support, it still contain bugs and not
all features are present. This is not the definitive API nor behavior.
Fix compilation on linux
entry.s: conditionally disable bootloader

When debugging, the bootloader is not present, thus optionally remove
the jump to the bootloader & init the usb variables
skel-usb: simplify flash section usage
skel-usb: Fix inline assembly

Do not change event_flags allocated address register.
Some optimisation leads to gcc not reloading the register content.
Fix linker script for xc16
Merge branch 'master' into rf

Conflicts:
	main.c
skel-usb: fix inline assembly

And provide a C alternative to it (disabled by default)
ir_prox: Add autocalibration feature

By default, the sensors will autocalibrate and flash the calibration
in the settings automatically (if Vbat > 3.3V).

To disable this feature, you have to write -1 into the settings 1-8.
To retrigger a complete calibration, write 0 into the settings 1-8.
ir_prox: Add communication support

This commit adds communication, range and bearing support for the
horizontal proximity sensors.

You can transmit 12 bits up to 40cm at 10Hz.

One new native function:
prox.network(enable): pass 1 to enable the communication, and 0 to
disable. All others values are reserved.

Two new non-hidden variables:
prox.rx_data: Data received (biggest intensity sensor selected)
prox.tx_data: Data to transmit (0-4095), might change in the future.

Two new hidden array:
prox._rx_d: rx data independant for each sensors
prox._rx_i: rx intensity independant for each sensors

Thoses two array are never reset to 0 by the firmware.
The user can do a "call math.fill(prox._rx_d,0) in order to "ack" the
data.

One new event:
prox.data: Fired every time you have new data available
ir_prox: Improve filtering & reduce bandwidth

Check that the received pulse is within a symbol range.
Increase gain and offset to lower the error rate when the robots are
moving.

The "noise" is about +/- 2 clock cycle when still (which would lead to
13 bits of useable data in 4ms).
But as soon as the robot is moving (ie, the intensity change over time),
the noise is much higher.
This is an electronic problem and cannot be worked around in software
(checked with a scope ....)
sensors: make sure the period drift is bounded
prox: tunes parameters
natives: fix typo
log: add ir communication flag

This change the binary format of the log, any previous log entries will
be lost.
Update log decoding tool to new binary format
SD: Enable user access

The VM can now access files from the sd in read/write.
Each access is done in word-size (16bits).
SD: Improve aseba API
SD: typo