Add package docs and describe high-level patterns.