tests for text functions
sys: has_exec
fn-text: str_item_count
source: move brew to new style

Also add tests. This is gonna be huge.
source: add 'pkg' delegator
re-alphebetize string functions
lib: add destination stack helpers

rather than setting values manually, bork has a "destination stack" that you can
push to or pop from. This is a directory *above* where you want things to go, so
you can do for example:

destination_push $HOME/code
github mattly/dotfiles          # clones into $HOME/code/dotfiles
destination_push $(destination)/.vim/bundle
github tpope/fugitive           # clones into $HOME/code/dotfiles/vim/bundle
destination_pop
github mattly/email             # clones into $HOME/code/email
destination_pop                 # resets the destination to $PWD
refactor "destinations"

now takes operation as arguments, if missing returns value:

destination               # $PWD
destination push $HOME    #
destination               # $HOME
destination pop
fn: destination returns 1 on unknown arg

this is just good pratice
fn: "destination pop" returns 1 on empty stack

hey, bash does this for us!
fn: arguments, laying groundwork
fn: destination gets size, clear ops

hopefully these will be useful beyond the test use cases
fn: destination, refactor
src: start of git source
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