Add code to initialize I2C, not working yet

The transmit function seems timeout, and L3G4200D cannot be read before
write to configuration register, so the read operation hadn't test
Switch to C11 for `0b` binary literal representation.
I2C: successfully read from L3G4200D.

Read X,Y,Z axis attitude from L3G4200D (16 bit each axis),
I2C works with 100kHz baud rate.
Clean up main.c, Move GY-801 sensor code to corresponding .c file

Sensor code on main.c is moved to gy801.c named `GY801_Task`.
Helper function moved to misc.c, declaration at main.h.
Clean up some I2C function for the use of operating system(not done)
Seperate read and processing task, switch to FIFO mode.
.clang_complete: Add FreeRTOS include
Merge branch 'master' into GY-801-sensor
Move inclusion of stdbool.h to main.h
Add basic PWM motor control
Move sensor code to separate directory

Plan to write each sensor code in separate .c file, attitude calculate
in another file.
Fix indent style

Stick into 80 column rule.
Merge branch 'master' into motor_control

Conflicts:
	src/main.c
Merge branch 'master' into GY-801-sensor

Conflicts:
	src/main.c
	src/sensor/l3g4200d.c
	src/sensor/sensor.c
Merge branch 'master' into GY-801-sensor
Merge branch 'master' into motor_control
4 channels of TIM to generate PWM signal
Add motor control structure
Add lock/unlock for speed, macro for switch OD/PP GPIO mode
Refactor Sensor code, separate each IC.
Add template for 3 another sensor