Add a step to 'make setup' that downloads and locally installs QEMU.

Currently we use Alistair's fork of QEMU, as it has patches for HiFive support that upstream QEMU doesn't have. QEMU is installed into a `build/` directory that is in .gitignore so it doesn't touch the host system or dirty the repository.
diff --git a/.gitignore b/.gitignore
index ae858ab..798463e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+/build
 /Cargo.lock
 /layout.ld
 /platform
diff --git a/Makefile b/Makefile
index b7eef32..5fc43b7 100644
--- a/Makefile
+++ b/Makefile
@@ -32,7 +32,7 @@
 endif
 
 .PHONY: setup
-setup:
+setup: setup-qemu
 	rustup target add thumbv7em-none-eabi
 	rustup target add riscv32imac-unknown-none-elf
 	rustup target add riscv32imc-unknown-none-elf
@@ -41,6 +41,17 @@
 	cargo install elf2tab --version 0.4.0
 	cargo install stack-sizes
 
+.PHONY: setup-qemu
+setup-qemu:
+	mkdir -p build
+	cd build                                              && \
+	git clone https://github.com/alistair23/qemu.git         \
+	          -b riscv-tock.next --depth 1                && \
+	cd qemu                                               && \
+	./configure --prefix=$(CURDIR)/build                     \
+	            --target-list=arm-softmmu,riscv32-softmmu && \
+	$(MAKE) install
+
 .PHONY: examples
 examples:
 	PLATFORM=nrf52 cargo build --release --target=thumbv7em-none-eabi --examples