Track directories for proper removal

A reference count is now kept for each directory in the environment. Only
when that count is 1 will a package removal attempt to remove that
directory.  This removes the erroneous warning about trying to remove a
directory with files.
Disable RPC to get BusyBox to build against newer glibc

Ubuntu 12.04 has a glibc which causes a linker error with BusyBox.  If we
disable the unused RPC feature everything builds just fine.
Fully specify TCC crt and lib paths for 64 bit support

On x86_64 systems the paths crt files and libraries have something like
x86_64_gnu_linux appended to them, which conflicts with how we are setting
up the build.  No we explicitly setup these paths so we can continue
building easily.
Update build to have interp an "arch" variable

For right now this is just the python arch variable.  So it's i386 or
x86_64.
uClibc fix for building on 64 bit Ubuntu 12.04

It can't find the asm/unistd.h or asm/param.h headers so we need to hack
the kernel header include path to get it to build.
Support multiple packages for install and remove

This makes using the install and remove commands nicer.  No wild card
support yet, but that will come (along with confirmation for removal).
Test package for basic patch support

We need to be able to patch packages to work around bugs (ugh) that
upstream has not fixed with our specific set of libraries.  This is the
most basic package that does that.
Return path to the location an XPD is loaded from

This path is being used to resolve file paths to other files, like patches,
that live in the tree with the XPD files.  Kind of ignoring trees accessed
over HTTP or over file systems for now.
Update our test tree building program to support patch files

It replaces hash-<patch_file_name> in the XPD file, as well as copies the
patch files to the root of the created tree.  Not the most robust solution,
but it works for now!
Support for the xpd:// URL scheme

This resolves files relative to the directory of the XPD file was loaded
from.  This allows patches and other support files to be placed directly
in the XPD file tree.

A test for this is using it to provide patches, so we have a simple
program that does that.
Partial fix for uClibc dynamic linking issue

This fixes not finding the ll_tzname symbol, but now it doesn't even find
stdout, which is just crazy.  Attempts to debug the by enabled
SUPPORT_LD_DEBUG did not show anything helpful.  It just showed a proper
list of symbols (like stdout, malloc, free, etc.) and nothing being found.
It did show the finding of the uClibc, and it does contain the needed
symbols.  The dynamic linker just can't find them.
Make sure separate downloads status updates appear on different lines.