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.
diff --git a/library/arc4.c b/library/arc4.c
index 488ddf7..85b78f5 100644
--- a/library/arc4.c
+++ b/library/arc4.c
@@ -1,7 +1,7 @@
 /*
  *  An implementation of the ARCFOUR algorithm
  *
- *  Copyright (C) 2006-2010, Brainspark B.V.
+ *  Copyright (C) 2006-2013, Brainspark B.V.
  *
  *  This file is part of PolarSSL (http://www.polarssl.org)
  *  Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
@@ -34,6 +34,8 @@
 
 #include "polarssl/arc4.h"
 
+#if !defined(POLARSSL_ARC4_ALT)
+
 /*
  * ARC4 key schedule
  */
@@ -95,6 +97,8 @@
     return( 0 );
 }
 
+#endif /* !POLARSSL_ARC4_ALT */
+
 #if defined(POLARSSL_SELF_TEST)
 
 #include <string.h>