Use user data directory for storage

This should be ready @powderblock, if you can test it and do a code review then merge it, that'd be great