Add better handling when deleting files on Windows

Windows complains if you try to delete a file that doesn't exist.
Makefiles now check if the files exist before trying to delete them.
diff --git a/library/Makefile b/library/Makefile
index f4b39bd..cf6750d 100644
--- a/library/Makefile
+++ b/library/Makefile
@@ -200,5 +200,6 @@
 ifndef WINDOWS
 	rm -f *.o libmbed*
 else
-	del /Q /F *.o libmbed*
+	if exist *.o del /Q /F *.o
+	if exist libmbed* del /Q /F libmbed*
 endif
diff --git a/programs/Makefile b/programs/Makefile
index 9cc28c4..f3627c9 100644
--- a/programs/Makefile
+++ b/programs/Makefile
@@ -322,7 +322,9 @@
 ifndef WINDOWS
 	rm -f $(APPS) $(EXTRA_GENERATED)
 else
-	del /S /Q /F *.o *.exe $(EXTRA_GENERATED)
+	if exist *.o del /S /Q /F *.o
+	if exist *.exe del /S /Q /F *.exe
+	if exist $(EXTRA_GENERATED) del /S /Q /F $(EXTRA_GENERATED)
 endif
 
 list:
diff --git a/tests/Makefile b/tests/Makefile
index b6e49bf..889d2a7 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -107,7 +107,9 @@
 ifndef WINDOWS
 	rm -rf $(BINARIES) *.c *.datax TESTS
 else
-	del /Q /F *.c *.exe *.datax
+	if exist *.c del /Q /F *.c
+	if exist *.exe del /Q /F *.exe
+	if exist *.datax del /Q /F *.datax
 ifneq ($(wildcard TESTS/.*),)
 	rmdir /Q /S TESTS
 endif