git: more tweaking
tests: various cleanup

* don't need the fixtures file after all
* having a "debug" helper helps a lot
lib: arguments helper

takes $* and given key, retreives value for --key=value pairs
text: add str_get_field, consolidate

* renamed lib/functions-text.sh to lib/text.sh
* consolidated text test files into one
* made test/helpers.sh source everything in lib
* updated tests to source test/helpers.sh
src: git has status

not complete yet, but it will report:
* if the target directory is missing, missing
* if the target directory is present but empty, missing
* if present, not empty, and not a git repo, conflict
* if not on the target branch, conflict
* if the local repo is ahead, conflict
* if the local repo has changes, conflict
* if the local repo is behind, out of date

does not check yet:
* if the origin is correct
* if there are changes after a fetch
text: matches uses return status correctly
str_match: we shouldn't always quote pattern

This was causing a really odd problem with some of the regexes. Best to let the
caller determine the correct quoting.
git: make tests reflect actual usage

status now both passes tests and against real use
brew: make it work for reals
pkg: redefine what the 'pkg' is, allow customs

if we do 'pkg foo' and a function 'bork_pkg_foo' exists, treat that as the
package source, not the package manager handler we delegate to from the
operating system.