runtests.pl: ensure exit code is not over-optimistic; MultiTestDB: SQLite munging

Sorry, this should really be two pull requests. I can re-work if necessary.

The first - and important - patch to runtests.pl ensures that parse errors, bad exit codes and script aborts are taken into account in generating the exit code. I was about to send a pull request for my SQLite Travis work when I noticed that actually two tests had failed, one by SEGVing and the other by exiting early.

The second two patches to MultiTestDB allow for fragments of SQL to be run before and after loading test data from the .txt files. These are named <table>.pre and <table>.post and are expected to be in the driver-specific subdirectory. 

The problem I encountered was that the NULL representation has to be replaced after loading into SQLite, but violates a unique index on transcript.canonical_transcript_id:
https://github.com/Anacode/ensembl/commit/2a21da26c8fc0902b21ed64dac1abf4cb4362a5e

Thanks
Michael