make has_command work cross-platform
a faster Map(): FMap()
more unit tests and documentation
fix documentation
include licence file