Add test case for simple Buffer functionality
Add Data.Buffer module

Implements Buffer, allocate, copy, append*, and peek* in terms of as-yet
non-existent (unsafe) primitives.
Add Buffer type and primitives to the core
Replace Fin ( n + 1 ), which doesn't reduce, with Fin ( S n )
Add C codegen implementation of buffer primitives
Remove some unnecessary copies
Missing comma
Rename functions implying Buffers have endianness

Buffers don't have endianness, though values stored in buffers do.
Endianness is redundant for Bits8
Remove redundant enName function

It's just the show instance for Endianness
Disable buffer tests on non-C backends for now
Add self to contributors
Add buffer tests to the distribution
Move buffer offset handling into idris code

This simplifies the native code significantly, including removing GETTYs
at every Buffer-related function call, at the cost of:

* Needing to store an offset of 0 in cases where the old code could just
  refer directly to the struct Buffer
* Boxing of the offset
* When an append to a buffer requires an allocation + copy, all of the
  data before the offset needs to be allocated and copied too (as
  there doesn't seem to be a good way for the append functions to tell
  the idris code when the offset needs to be changed and when not)

I think the simplification outweighs the cost, but I don't have hard
numbers so YMMV.
Merge pull request #816 from shlevy/buffer

Buffer