Add methods to determine whether node or element is on boundary

This adds two variants of MooseMesh::isBoundaryElem() and one variant of MooseMesh::isBoundaryNode().

I changed the _bnd_node_ids data structure from a set to a map of sets, and made a similar data structure for the boundary element ids.  This makes it easier to determine whether a node/element is on a specified boundary. 

It seems a little ugly how we're sort of duplicating things in the _bnd_node_ids and _node_set_nodes data structures.  One of them holds sets of ids, and the other holds vectors of BndNode*.  The ids are in a set so that it's easier to search through it to see if the id exists, and I assume that _node_set_nodes stores a vector of Elem* because that's a better format for whatever calls getNodeList() to receive them in.  Maybe this is unavoidable, but please comment if there's a better way to do this.