Tweak the shell scripting for descending into and building subdirs.

In general, use this:
	@for dir in $(SUBDIRS) ; do \
		if [ -d $$dir ] ; then \
			(cd $$dir && $(MAKE)) || exit 1; \
		fi \
	done

Basically, silently skip missing subdirs but generate an error and stop if
there's a compilation or install problem.
This was done inconsistantly before.  In once case, a missing subdir was
causing us to go into an infinte loop!
diff --git a/src/Makefile b/src/Makefile
index f52a06a..f93987e 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -17,14 +17,14 @@
 subdirs:
 	@for dir in $(SUBDIRS) ; do \
 		if [ -d $$dir ] ; then \
-			(cd $$dir ; $(MAKE)) || exit 1 ; \
+			(cd $$dir && $(MAKE)) || exit 1; \
 		fi \
 	done
 
 install:
 	@for dir in $(SUBDIRS) ; do \
 		if [ -d $$dir ] ; then \
-			(cd $$dir ; $(MAKE) install) || exit 1 ; \
+			(cd $$dir && $(MAKE) install) || exit 1 ; \
 		fi \
 	done
 
@@ -35,6 +35,6 @@
 clean:
 	@for dir in $(SUBDIRS) ; do \
 		if [ -d $$dir ] ; then \
-			(cd $$dir ; $(MAKE) clean) ; \
+			(cd $$dir && $(MAKE) clean) ; \
 		fi \
 	done