Adding support for posh (Policy-Compliant Ordinary Shell).

Finally, support for posh was added. Minor code changes were
needed:

  - posh can't handle $@ if no arguments were passed, we
    changed it to ${@:-} where needed.
  - command -v does not work on posh, so we don't rely on
    it anymore.
  - sourced files inside functions don't behave consistently
    on posh, so we changed our /bin files to source them
    directly.

We also updated our test matrix to include posh tests and
included all shell versions tested on doc/platforms.md.