Made similar changes to the exception handling for Simple Mode.

Notes:
1. I spent several hours trying to extract the openBook...() methods to the Base class. However there are so many interactions with class level variables AND some subtle differences in the implementation related to the respective private Controller class in each of the sub-classes that I eventually abandoned the migration as the risk of inadvertently breaking some of the behaviour was too high.

2. I'd like to look at simplifying the respective classes to reduce the complexity. I hope to make some of the code easier to test in the process.

3. I *think* I have some idea how the various exceptions occur on end-user devices, however I have yet to find a way to trigger the exceptions locally. From my testing on my Nexus 4 LG phone it seems the file sustem is not case-sensitive. e.g. it reads NCC.HTML as ncc.html both in adb shell and in Java code. My suspicion is that some implementations of Android uses a case-sensitive filesystem (as I'd expected and believed until today's testing). I'll need to do some more testing with other manufacturer devices including Samsung devices which trigger the exception in the field.