Adding ImageMesh class which builds a mesh based on the size data from
an image file specified by the user.

Remarks:
* This currently works for a single image in 2D, but could be extended
  to work on a stack of images in 3D.
* Can scale the 2D domain to a max dimension of 1, 'scale_to_one=true'.
* User can specify a cells_per_pixel value <= 1 to undersample the image.

Refs #3976.
Merge pull request #3977 from jwpeterson/image_mesh

Adding ImageMesh class to phase_field module
Adding an ImageFunction test which reads into an elemental variable
instead of a nodal variable.

The elemental variable field looks a lot more like the original image
when you have 1 pixel/element.

[original](https://drive.google.com/file/d/0B9BK7pg8se_iU2xFS19aUVVPOGs/edit?usp=sharing)
[elemental](https://drive.google.com/file/d/0B9BK7pg8se_iOUNSUlpfM1RNZUE/edit?usp=sharing)
[nodal](https://drive.google.com/file/d/0B9BK7pg8se_ieEw2S25VUU15S2M/edit?usp=sharing)

Refs #3544.
Merge pull request #3975 from permcody/warehouse_base_squash

Warehouse base squash
Update .gitignore to ignore new output file in phase_field module
Merge pull request #3978 from jwpeterson/image_function_test

Adding an ImageFunction test which reads into an elemental variable
Ignore output file in new 'solution rasterizer' test.
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.
Merge pull request #3980 from jwpeterson/image

Add optional boundary-intersecting grain volume calculation to NodalFloodCount object
Fix wrong comment.

Refs #3979.
Hotfix for Intel compilers
#3975
Use smart pointers with Constraints system
refs #3692
Use shared pointer for TimeIntegrator instance in AuxilarySystem
Convert ActionFactory/ActionWarehouse to smart pointers