Only build ivory-cli once for multiple tests

/cc @markhibberd
We should probably differentiate between executables and things that are meant to be sourced. My personal preference is that things meant to be sourced have a `.sh` or `.subr` extension and don't have a sh-bang. But as long as it is clear, it would be good.