build: Add -O2 flag
ll: Add comments for advertising header
example: Fix length field of broadcaster example
radio: Force alignment

Force maximum alignment for a scalar data type in order to have a better
efficiency when handling memory/data copy.
radio: Use macro instead of magic number

This commit doesn't change the logic. It is replacing a "magic" number by
a constant defined in the NRF51 sdk.
radio: Minor coding style change
radio: Fix NRF PCNF0 config

In-RAM representation of radio packet, S0, LENGTH, and S1 are optional.
For BTLE radio packet, S1 can be omitted setting its length to zero
(omitting in memory).
radio: Remove unneeded buffer copy

memcpy should be avoided at all. Buffer address can be assigned directly
to NRF_RADIO->PACKETPTR register.

This way, provided buffers must be non-const because Radio's EastDMA
requires an address in the RAM.
radio: Remove unneeded radio_packet struct

Copy packets between layers should not be encouraged. Even using newlib
memcpy implementation, each memory copy of the radio packets can take
more than 10us.
ll: Remove unneeded type definition

Advertising PDUs will not be exposed to the upper/down layers, it will
be restricted to ll.c source file. Even if it was declared in a header
file typedef'd structs pollutes the global namespace and may cause
ordering relationships among header files.
ll: Remove unneeded static variable
ll: Change ADV_NONCONN_IND inter-PDU interval to 10ms
examples: Add root Makefile to build all examples
nrf51822/timer: Implement timer API using TIMER0
nrf51822/radio: Override BLE deviation parameters
radio: Add radio_driver

This patch adds a new radio event handler mechanism allowing to avoid
unneeded upper layer notifications, and group radio settings.
radio: Add RX option to radio_send()
radio: Add radio_reply() API
examples: Add scannable broadcaster
examples/radio-broadcaster: Remove duplicate timer initialization