Refactor out path construction.

The absolute path to the DB was being constructed from the path
to the directory and the name of the DB in a couple of places.

This commit refactors this into one method, making the code easier
to read and maintain.
Make createOrOpenDatabase never return null.

A small change that makes the above mentioned method never return null,
but rather propagate SQLiteExceptions encountered. This is done to remove some
fairly uncommon NPEs and fix #36.

This will also make it easier for users of this project to understand why
their code fails.
Refactor away createOpenDatabase method.

Having a method with multiple side effects made it harder
to reason about the code. Splitting it into multiple methods
allows us to make the both the calling code and the called code
simpler, and also allows us to properly throw and propagate
SQLiteExceptions.
Make sure we always open using the same procedure.

There were differences between paths and how the database was opened when
it was opened in read only or read write modes. This commit should remove
them.
Removes unused parameter in forceUpgrade method.