Add crate-level documentation