Refactor OS X updater

Went and rewrote half of it in an actually sane manner, recursive functions > nested loops.