OKRA - [RFC3986]-compliant URI Parser in pure C99

Okra is a [RFC3986]-compliant URI Parser, implemented as a
single-header, pure C99 library with no outside dependencies.
It was developed for use in various components of the
[bro](http://git.y1.nz/bro) browser project: a browser that
uses the base unix system, instead of building additional
OS-shaped software on top of it.

---

Goals
  - Conformant to [RFC3986]
  - Robust and resilient to bad inputs
  - A simple and easy-to-use API
  - Lightweight, no outside dependencies
 
Non-Goals
  - Optimal execution speed. It's plenty fast by virtue
    of being written in C, and using O(N) algorithms.
  - Optimal memory usage. Other things are more important.
  - Support for encodings other than ascii. It is the
    client's responsibility if they want to use something else.

---

Build
  First, update config.mk to reflect your system's
  configuration and your preferences. Then, run
  `make` to build okra.a as well as the test binaries,
  then `make install` with permissions necessary to
  install it on your system.

Testing
  After building them, you can run all the tests by
  calling `test/all`, or by individually calling the
  test/* binaries. The build also produces a program
  for manually playing with the library: `okra`, which
  you can call with one URI (to parse it), or two URIs
  (to resolve the second reference as relative to the first).

Usage
  This library is intended to be statically-linked only,
  as it is likely to be smaller, run faster, and be more
  secure than if it was dynamically-linked.

  See okra.h for documentation of what functions the
  library provides.

Contributing
  There are probably plenty of easy-to-fix issues in this
  repo, as this project is very recent. To contribute, send
  emails with patches to emma@y1.nz :)

---

  "And if you use AI, you go to hell before you die."
  --Mario Mario
