Using a custom optimisation pass pipeline

@rkruppe While it’s a tantalizing idea to search for the best optimization pipeline, when I’ve floated this to @sunfish (an LLVM dev) he advised against it, since using our own optimization ordering will be very untested and we’ll be exposing ourselves to bugs nobody else sees.