Use OpenMP atomic updates instead of critical sections

Currently, when threads try to increment global and user tallies, the potential race condition is prevented by using an `!$omp critical` section which allows only one thread at a time to update the tally value. I observed recently that this approach has poor scalability when going to many threads. A better approach is to use the `!$omp atomic` directive which the compiler can turn into special instructions, like fetch-and-add, that improve the multithreaded scalability. I had originally opted for critical regions because I couldn't get the gfortran compiler to play nicely with `!$omp atomic`. However, I recently discovered that this is due to a [bug](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63938) wherein automatic arrays are not protected by `!$omp atomic`. Until it's fixed in gfortran, an easy workaround is to simply make the global_tallies array allocatable rather than automatic, as I've done in this PR. This should significantly improve OpenMP scaling, particularly on problems with large tallies.

I have the test suite currently running, and the results will be updated [here](http://openmc.mit.edu/cdash/index.php?project=OpenMC&date=2014-11-19&filtercount=1&showfilters=1&field1=buildname/string&compare1=63&value1=atomic).