Update .gitignore, add Makefile for icc builds

Update code to compile with icc
Merge pull request #1 from mgmarino/add_makefile

Update .gitignore, add Makefile for icc builds
Pull EventHandler into a separate include file.
Fixes to makefile to let it compile on hopper.  (Still a work in progress, of course.)
Code reorganization: pull finisher code out into a new EventFinisher class.
This is nice for modularity, but also makes it easier to move toward passing events with MPI.  (For instance, it's easy to forget that the finisher functions depended on fChannels.)
Move some constant values into a constant header file.  This is better than the other means of sharing them which I was moving toward.
If USE_PROCESSES is defined, give EventHandler a serialization function.  We don't actually handle interprocess communication yet.
Fill out the option of having multiple processes coordinate, using MPI messages.  Currently the makefile disables this by default.
I have attempted to keep separate the notions of multi-threaded and multi-process code.  So, if USE_PROCESSES is defined and USE_THREADS is not, the program should run in two MPI processes, each of which is single-threaded.
Disallow MPI calls from threads.
Throttle mpi recv by using irecv and sleep.
Fix a macro typo.
Guard includes which are only needed if USE_PROCESSES is defined.