Finish most of the uart stuff.

I've decided to push this, even though I can't test it.
That worries me a little. Use it with caution.

Implement GPIO stuff, and a main executable to receive uart
data. Also make some modifications to Brian's stuff, to get it to
build correctly.

Finally, add some testing stuff. Feel free to disregard that.
I probably won't be using it until I get debian flashed onto
my BeagleBone Black.
diff --git a/bbb_cape/src/cape/cows.c b/bbb_cape/src/cape/cows.c
index 22bd056..396889c 100644
--- a/bbb_cape/src/cape/cows.c
+++ b/bbb_cape/src/cape/cows.c
@@ -5,8 +5,8 @@
 // This implementation is based on
 // <http://www.jacquesf.com/2011/03/consistent-overhead-byte-stuffing/>.
 
-uint32_t cows_stuff(const void *restrict source_in, size_t source_length,
-                    void *restrict destination_in) {
+uint32_t cows_stuff(const void *__restrict__ source_in, size_t source_length,
+                    void *__restrict__ destination_in) {
   const uint32_t *restrict source = (const uint32_t *)source_in;
   uint32_t *restrict destination = (uint32_t *)destination_in;
   size_t source_index = 0;
@@ -34,8 +34,8 @@
   return destination_index;
 }
 
-uint32_t cows_unstuff(const uint32_t *restrict source, size_t source_length,
-                      uint32_t *restrict destination) {
+uint32_t cows_unstuff(const uint32_t *__restrict__ source, size_t source_length,
+                      uint32_t *__restrict__ destination) {
   size_t source_index = 0;
   size_t destination_index = 0;
   uint32_t code;