New, simpler area implementation. Arena abstraction is removed but can be re-insterted later as an area allocator. The main reason for that change is the simplification of the abstraction that most users will see first: area. The linux implementation in particular was too complex, with too much inner details leaking out.
This merge request also remove dma move operations from the library, to allow us to focus on what works: copies & transforms, while simplifying the overall API. The reality is that move can never be really performant, and including it makes the rest of the library more complex.
Major side-effects of this merge request:
- jemalloc not needed at all, and might be reintroduced as an external dependency later if needed.
- dma/scratch loose some generic API calls.
- most of area API redesigned.
Fixes #23 (closed), #20 (closed).
Closes #15 (closed), #5 (closed), #7 (closed), #12 (closed) (not longer valid).