lib: introduce proper fixed point parsing and representation module
This additional modules isolates the complexity of parsing and
representing fixed point numbers. This is uses for coordinates in
LLDP-MED.
The previous version was using an incorrect precision. When parsing
user input, the precision is now derivated from the number of digits
provided. When displaying a value, the precision is used to add
additional 0 if needed.
Moreover, the previous version was a bit buggy with some values and
with negative numbers. This change contains unittest to tackle most
issues.
It relies on presence of __builtin_clzll() function, available in GCC
and others. Maybe this will become a portability issue.