begin jef's unicode patching

...I'm so embarassed that it took me THREE YEARS to apply jef's patch to
fix a unicode error!!! Eeep. http://trac.osgeo.org/osgeo4w/ticket/270

This is just the start, and actually not really related, just getting
rid of cryptic ball in favour filename, localname. And deciding that
since AttrDict isn't going to work everywhere, cleanly, I should stick
to core python features and syntax for dictionary access.
"ball" to "filename"; no AttrDict

...along with realizing I like the sensibility of using "p_info" as a
name for "informaiton about package" object. Start documenting my
conventions (I actually have some now!)
"info-ize" do_download()

+ add `filename` to info properties dict, and now realize I need to
spend some time thinking about the proper names to use before they get
too widely used. It's weird to have `mirror_path` and `local_zip` both
be fully qualifed paths, and such different labels.

#12: turn 1 inappropriate TypeError into an Exception

...and finally understand what the check_md5() bit was for, now that I
need it, and it's broken: we currently force people to manually remove
bad local files from cache_dir and it really should be automatic, or at
least have a command or option for it.
begin writing release notes
comment out do_download info-izing

...it just made things worse, broke download, md5, and messed with
install. They should all work again, but there are still problems with
install at least (it's too silent when the package is already
installed). I still believe in the overall info-izing goal, but need to
proceed more thoughtfully.

One thing that has come to light is that we need more atoms in
get_info(), along with meaningful and intuitive names. Such as
"cache_dir", "server_root", "release_root", and so on. Strictly
speaking, these probably shouldn't be in the pkg dict, but in a parent
object -- basically the role globals are in now. I need to draw a
visual map. The relationships and occurences are too much for me to see
in my head, and text doesn't convery meaning rapidly enough.