Misc. enhancements to NodalFloodCount.{C,h}

* Use MooseSharedPointers for the file handles.
* Avoid multiple lg(N) lookups of the file handle.
* User can now select whether the NodalFloodCount threshold check is a
  less-than or greater-than check. By default, it is less-than.
* Delete commented-out line.
* Add/clarify comments.
* Delete unnecessary curly braces.
* Rename variable.

Refs #3979.
The NodalFloodCount object now computes the sum of grain volumes for
grains which intersect the boundary.

* The boundary-intersecting grain volume calculation is off by default,
  and can be enabled by setting:
    compute_boundary_intersecting_volume = true
  in the input file.
* Get the list of all boundary node ids in NodalFloodCount.C
* Detect intersection with boundary
* Store whether or not a bubble intersects the boundary in the
  BubbleData object.
* Add up all bubble volumes which intersect the boundary.
* Sum up the boundary intersecting grain volumes in parallel.
* The boundary-intersecting volume is output to the CSV file.

Refs #3979.
Adding test computing boundary-intersecting volumes.

* Uses the new use_less_than_threshold_comparison
* Writes results to a CSV file
  Current order of data is:
  timestep, time, volume-of-bubble-1, volume-of-bubble-2, ...
* Uses new ImageMesh type
* It appears we do need execute_on='TIMESTEP' for the
  NodalFloodCountAux to show something.
* Uses ProcessorIDAux, so we can confirm the volume calculation works in parallel.
* Added a text file with some results for different cells/pixel numbers.

Refs #3979.