An arena allocator.
The arena keeps every appended value in a fixed memory location, and only deallocates them all at once.
The arena also allows safe mutable access to the stored elements, through a RefCell
wrapper.
```rust let arena = Arena::new();
let a = arena.append(0); let b = arena.append(1);
assert_eq!(*arena.get(&a), 0);
*arena.get_mut(&b) += 1;
assert_eq!(*arena.get(&b), 2);
```