Separate library and binary crates

Description

Currently, both lib.rs and main.rs are under a single crate with the same Cargo.toml file. This means that when using copes as a library in another project, it pulls in some redundant dependencies such as ctrlc and clap which are only needed for the binary. Splitting the project into a library and a binary crate would help avoid this.

Use cases

I've been using copes in LACT with success (as it's the same exact use case as copes was made for). However I'm not sure if usage as a library was intended at all or just consequently made possible due to structuring with a lib.rs file, and I would understand if you want to keep the project a CLI only.

But if you are fine with this change I'll make a merge request.