Added mechanism to provide alternative cipher / hash implementations

All symmetric cipher algorithms and hash algorithms now include support
for a POLARSSL_XXX_ALT flag that prevents the definition of the
algorithm context structure and all 'core' functions.
(cherry picked from commit 4087c47043cb7b8b51e69f1de47ab6a2bccead3d)
diff --git a/library/blowfish.c b/library/blowfish.c
index f55d085..719aea6 100644
--- a/library/blowfish.c
+++ b/library/blowfish.c
@@ -1,7 +1,7 @@
 /*
  *  Blowfish implementation
  *
- *  Copyright (C) 2012-2012, Brainspark B.V.
+ *  Copyright (C) 2012-2013, Brainspark B.V.
  *
  *  This file is part of PolarSSL (http://www.polarssl.org)
  *  Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
@@ -35,6 +35,8 @@
 
 #include "polarssl/blowfish.h"
 
+#if !defined(POLARSSL_BLOWFISH_ALT)
+
 /*
  * 32-bit integer manipulation macros (big endian)
  */
@@ -626,4 +628,5 @@
         0xB74E6132L, 0xCE77E25BL, 0x578FDFE3L, 0x3AC372E6L  }
 };
 
+#endif /* !POLARSSL_BLOWFISH_ALT */
 #endif /* POLARSSL_BLOWFISH_C */