GH-277 Database version upgrade added

I decided to store the version in the built in user_version field. I kept the functions for incremental updates, but hopefully its a little clearer this time.
All versions 2x and prior default to version 0, but I checked and any older versions will work with the same update function anyways.