(maint) abstract location of patches and bash

Previously, location of bash was hardcoded. This patche moves it to a variable
`bash` so that it can be overridden in platforms where bash is not present by
default. This patch also adds OS specific patches and moves the solaris specific
gcc patch to an OS specific directory
(fix) solaris use simple cat instead of gnu find
(maint) define SHELL only in the platform specific makefiles.

Previously, the SHELL variable used to be exported from the global
makefile. However, the value (path) of SHELL can change in different
platforms. Hence its definition is moved to the platform makefiles.
(fix) copy md2.h to correct place

Previously, we had a patch for various openssl source files where
md2.h was included to point it to where md2.h is present originally.
however, after noticing that all other header files are under openssl
and not in their original path, it is better to copy the md2.h to the
correct location.