Change which class has appInfoList as a public field

There is no reason to have appInfoList as a public field in
the other classes when they can just access it where it originally
is created.
The reason for having it as a public field in the first place is
that it is too large to transfer between activities in an intent
extra. And when appInfoList is static it will also survive
configuration changes.
Clean up batchactivity

Remove unneeded imports and variables.
Handle configuration changes properly

Remove configChanges from AndroidManifest.xml so the activities are
actually recreated on configuration changes.
Add variable threadId in OAndBackup.java and BatchActivity.java to
track id of current running thread so it can be tracked if a thread
is running when the configuration changes happens.
Add method to show message again if the thread is still running.
Make the LanguageHelper methods static

There is no need to initialise LanguageHelper so the methods
can just as well be static.
Handle language changes in all activities

For some reason it doesn't work changing language in the onCreate
of a PreferenceActivity but as suggested here:
http://stackoverflow.com/a/20057397 it works changing it in
onSaveInstanceState.
Don't instantiate Locale unnecessarily

Since Locale.getDefault is static there is no need for an instance
of Locale there.