Make 'message' non-global

This PR changes the interface to `fatal_error`, `warning`, and `write_message` so that the message must be passed as an argument rather than through the global variable `message`.  Note that it also removes the `force` argument from `warning` which means that developers will have to handle the `if (master)` business explicitly in the call to `warning`.

The changes in this PR are cherry-picked from @bhermanmit's tally_refactor branch with some minor adjustments.  The primary reason I making this pull request is to reduce the differences between mit-crpg/openmc/develop and bhermanmit/openmc/tally_refactor to allow easier merges.  This PR is working towards the resolution of #214.
Some of these had to be commented out due to circular dependencies preventing the calls from being made. I don't know if that's still the case. Ideally, we would want particle restart files to be written when errors occur which is why I left these commented out rather than deleting them. You'll also notice a TODO note at the top of the module.