Add PerfItem class and LOG_SCOPE/LOG_SCOPE_IF macros.
Add PerfItem class and LOG_SCOPE/LOG_SCOPE_IF macros.

This gets us about 95% of the way to the RAII PerfLog feature
discussed in #199.  It uses the macro trick to generate a unique
variable name based on __LINE__, but instead of outright replacing the
existing START_LOG/STOP_LOG macros with this new macro, I've
introduced a new one.  There are situations where a scope-based
logging macro just doesn't make sense, but they are pretty rare.
Almost all START_LOG/STOP_LOG pairs in the library can be replaced
with the new LOG_SCOPE macro, and the ones that can't easily be
replaced can just remain unchanged.

The logging capability can also be disabled at runtime by passing the
appropriate flag to the LOG_SCOPE_IF macro.  See examples of the way
this is used in the dof_map_constraints.C code.

balborian/libmesh,capitalaslash/libmesh,BalticPinguin/libmesh,svallaghe/libmesh,giorgiobornia/libmesh,jwpeterson/libmesh,jwpeterson/libmesh,roystgnr/libmesh,hrittich/libmesh,aeslaughter/libmesh,dschwen/libmesh,giorgiobornia/libmesh,capitalaslash/libmesh,pbauman/libmesh,benkirk/libmesh,benkirk/libmesh,jwpeterson/libmesh,roystgnr/libmesh,giorgiobornia/libmesh,friedmud/libmesh,90jrong/libmesh,svallaghe/libmesh,aeslaughter/libmesh,balborian/libmesh,giorgiobornia/libmesh,pbauman/libmesh,roystgnr/libmesh,friedmud/libmesh,vikramvgarg/libmesh,vikramvgarg/libmesh,balborian/libmesh,hrittich/libmesh,giorgiobornia/libmesh,90jrong/libmesh,svallaghe/libmesh,pbauman/libmesh,svallaghe/libmesh,90jrong/libmesh,friedmud/libmesh,vikramvgarg/libmesh,svallaghe/libmesh,libMesh/libmesh,libMesh/libmesh,BalticPinguin/libmesh,svallaghe/libmesh,coreymbryant/libmesh,aeslaughter/libmesh,hrittich/libmesh,libMesh/libmesh,pbauman/libmesh,vikramvgarg/libmesh,aeslaughter/libmesh,dschwen/libmesh,benkirk/libmesh,coreymbryant/libmesh,pbauman/libmesh,svallaghe/libmesh,dschwen/libmesh,dschwen/libmesh,capitalaslash/libmesh,friedmud/libmesh,balborian/libmesh,dschwen/libmesh,vikramvgarg/libmesh,aeslaughter/libmesh,friedmud/libmesh,coreymbryant/libmesh,coreymbryant/libmesh,coreymbryant/libmesh,90jrong/libmesh,giorgiobornia/libmesh,jwpeterson/libmesh,BalticPinguin/libmesh,BalticPinguin/libmesh,90jrong/libmesh,vikramvgarg/libmesh,pbauman/libmesh,90jrong/libmesh,vikramvgarg/libmesh,BalticPinguin/libmesh,jwpeterson/libmesh,roystgnr/libmesh,90jrong/libmesh,BalticPinguin/libmesh,jwpeterson/libmesh,pbauman/libmesh,coreymbryant/libmesh,coreymbryant/libmesh,roystgnr/libmesh,90jrong/libmesh,benkirk/libmesh,coreymbryant/libmesh,balborian/libmesh,jwpeterson/libmesh,pbauman/libmesh,friedmud/libmesh,hrittich/libmesh,vikramvgarg/libmesh,giorgiobornia/libmesh,aeslaughter/libmesh,hrittich/libmesh,capitalaslash/libmesh,friedmud/libmesh,roystgnr/libmesh,hrittich/libmesh,BalticPinguin/libmesh,hrittich/libmesh,capitalaslash/libmesh,aeslaughter/libmesh,giorgiobornia/libmesh,hrittich/libmesh,capitalaslash/libmesh,90jrong/libmesh,balborian/libmesh,balborian/libmesh,capitalaslash/libmesh,svallaghe/libmesh,friedmud/libmesh,dschwen/libmesh,dschwen/libmesh,roystgnr/libmesh,benkirk/libmesh,balborian/libmesh,libMesh/libmesh,benkirk/libmesh,libMesh/libmesh,roystgnr/libmesh,balborian/libmesh,balborian/libmesh,aeslaughter/libmesh,benkirk/libmesh,libMesh/libmesh,aeslaughter/libmesh,benkirk/libmesh,benkirk/libmesh,pbauman/libmesh,jwpeterson/libmesh,giorgiobornia/libmesh,libMesh/libmesh,dschwen/libmesh,libMesh/libmesh,svallaghe/libmesh,hrittich/libmesh,capitalaslash/libmesh,BalticPinguin/libmesh,friedmud/libmesh,vikramvgarg/libmesh