Provide more context in top-level crate docs
This code may be discovered by people using crates.io or docs.rs, and so
we want to provide a brief overview of Pact for people who've never
heard of it before.
-//! The `pact_consumer` crate provides the test DSL for writing consumer [Pact
-//! tests][pact]. It implements the [V2 Pact specification][spec].
+//! The `pact_consumer` crate provides tools for writing consumer [Pact
+//! tests][pact]. It implements the [V2 Pact specification][spec]. You can also
+//! use it as a simple HTTP mocking library for Rust.
//!
-//! [pact]: https://docs.pact.io/
-//! [spec]: https://github.com/pact-foundation/pact-specification
+//! [pact]: https://docs.pact.io/ [spec]:
+//! https://github.com/pact-foundation/pact-specification
+//!
+//! ## What is Pact?
+//!
+//! [Pact][pact] is a [cross-language standard][spec] for testing the
+//! communication between the consumer of a REST API, and the code that provides
+//! that API. Test cases are written from the consumer's perspective, and they
+//! can then be exported testing the provider.
//!
//! The big advantages of Pact are:
//!
//! 2. Pact has been implemented in many popular languages, so you can test
//! clients and servers in multiple languages.
//!
-//! Whenever possible, we try to use vocabulary similar to the Ruby API for
-//! basic concepts, and to provide the same behavior. But we offer many handy
-//! builder methods to make tests cleaner.
+//! Whenever possible, we try to use vocabulary similar to the Ruby or
+//! JavaScript API for basic concepts, and we try to provide the same behavior.
+//! But we offer many handy builder methods to make tests cleaner.
//!
//! ## How to use it
//!
//!
//! ## Matching using patterns
//!
-//! You can also use patterns like `like!`, `each_like!` or `term!` to
-//! allow more general matches, and you can build complex patterns using
-//! the `json_pattern!` macro:
+//! You can also use patterns like `like!`, `each_like!` or `term!` to allow
+//! more general matches, and you can build complex patterns using the
+//! `json_pattern!` macro:
//!
//! ```
//! # #[macro_use] extern crate pact_consumer;
