enhance unsafe functions

Add Led.unsafe_light(), LedSet.unsafe_buffer(), LedSet.unsafe_set() and
LedSet.unsafe_light().

Use the unsafe functions to reduce code duplication and improve
factorization.
fix Board.led_set() and Board.buffer()

All leds were shifted, LED 1 was detected as LED 2, LED 2 as LED 3,
etc. This caused an IndexError when trying to use a LED set containing
LED 18.
Merge branch 'internals' into dev
bump v0.3.1

Release notes:
- fix the LED shifting bug in Board.led_set() and Board.buffer()
- minor edits