Added library system with -l, -L, and JQ_LIBRARY_PATH

Created util.[ch] to hold common utilities.
Rename jq_memmem() to _jq_memmem()
Do fix remaining bison warning (fix #433)
Changing color codes to fix #495
Fix #499, #500
Fold constants (fix #504)
Fixing crash when a library's dependency could not be loaded.

Signed-off-by: Nicolas Williams <nico@cryptonector.com>
Add `first`, `nth`, `last` (fix #510)
Add capture; document regular expression filters

    Fix #493.
Add @wtlangford to the AUTHORS list
Correct @wtlangford's address
Some builtins are unnecessarily special (fix #521)
Add example of selecting object with keys

It is not very straight forward how to select objects by their attributes from an array. This example provides the basic use case of how to select some objects based key values.
Apply TCO to recurse/1, add recurse/2; tweak docs

Signed-off-by: Nicolas Williams <nico@cryptonector.com>
Remove duplicate TOP insertions, drop unused defs.
Merge pull request #523 from eproxus/patch-1

Add example of selecting object with keys
Fix docs (missing backquotes)
Document TCO a bit more
Merge pull request #532 from wtlangford/top-removal

Remove duplicate TOP insertions, drop unused defs.
Actually check version for bison.

Clean up oniguruma checks.