Basic extension upgrade system. Still need to do more than just replace files at the moment.