Basic download/update functionality

Going to finish up the gui later.