Added UserObject for J2 plasticity

This has strength = 1 hard-coded.

Three tests added.

Fixes #3952
Added J2 plasticity UserObject with Gaussian hardening

Two tests

Fixes #3952
remove broken assert (closes #3959)
Removing trailing spaces and tabs.  Fixes #3952
Merge pull request #3960 from dschwen/assert_3959

Remove broken assert
Merge pull request #3955 from WilkAndy/j2_uo_3952

J2 plasticity as a userobject
Removed print() from MultiSmoothCircleIC for #3962
Merge pull request #3963 from tonkmr/MultiSmoothCircleIC_3962

Removed print() from MultiSmoothCircleIC for #3962
try to use the gometric search system to give us the distance between all nodes in a block and a boundary refs #3964
Merge pull request #3966 from friedmud/block_to_boundary_3964

Block to Boundary GeomSearch
remove dupicate line
closes #3967
Reworking the boundary element and node iterators in MooseMesh.

This makes it so the following line of code compiles:
MooseMesh::bnd_node_iterator boundary_nodes_it  = _mesh.bndNodesBegin();

Note that there is an interesting issue with the ConstBnd{Node,Elem}Range typedefs.
Since they depend on the MooseMesh::const_bnd_{node,elem}_iterator types, they have
to be defined after them, but they should not be defined inside MooseMesh if we want
to continue to mimic the Const{Node,Elem}Range classes from libmesh and avoid changing
any interfaces.  Therefore, these typedefs are now immediately after the MooseMesh
class declaration.

Refs #3969.
Merge pull request #3968 from permcody/remove_line

remove dupicate line
Merge pull request #3970 from jwpeterson/bnd_range

Reworking the boundary element and node iterators in MooseMesh.
Add missing assignment operator overload (#3971)
Start work on SolutionRasterizer (#3972)
Add XYZ processing logic (#3972)
Check if x,y,z columns were read, add LF (#3972)
Rewrite XYZ file header with updated number of atoms (#3972)
Merge pull request #3973 from dschwen/ebop_3971

Add missing assignment operator overload