carrier: Isolate Functions for Remote Execution

Sending functions to remote processes can be wasteful of
resources because they carry their environments with them. With
the carrier package, it is easy to create functions that are
isolated from their environment. These isolated functions, also
called crates, print at the console with their total size and can
be easily tested locally before being sent to a remote.