Improve detection speed for LSB based systems

The new code avoids calling the external lsb_release
binary and reads the /etc/lsb-release issue file instead.

The old code called lsb_release quite excessively:
- once in is_os()
- twice in get_version() and get_codename()
This makes 5 subprocesses. On Ubuntu, this totals
to 7 popen calls just to detect the OS.