feat($log): add $log.snapshot() option to make angular.copy of console log arguments

makes angular.copy of object before logging so mutating objects are still recorded accurately in log
(improves default behavior of browser log which otherwise contains live object references that
can provide misleading picture of complex objects that change after being logged).
$log.snapshot() is sugar method for $log.snapshot.log()
Also can call $log.snapshot.warn(), $log.snapshot.info(), $log.snapshot.error(), $log.snapshot.debug()