Custom allocators
<!--
Note: Please search to see if an issue already exists for this discussion.
-->

## What

Add custom allocators to cuprated behind a feature flag.

## Why
Targets that are statically linking (like musl libc by default) will inherit the default (potentially very slow) allocator. Rust permits to easily swap out an allocator and I think this might be beneficial to have a feature flag for it. 
The allocators we could support (or force):
- [jemalloc](https://github.com/jemalloc/jemalloc)
- [mimalloc](https://github.com/microsoft/mimalloc)
