provisioners/file: expand destination path if capable

Use `shell_expand_guest_path` guest capability to expand the destination path if the capability exists. This PR adds the cap to also  {Free,Net,Open}BSD guests.

Also add unit tests for the file provisioner.