SPARK-2486: Utils.getCallSite is now resilient to bogus frames

When running Spark under certain instrumenting profilers,
Utils.getCallSite could crash with an NPE.  This commit
makes it more resilient to failures occurring while inspecting
stack frames.
nit, but we'd typically format this kind of multi-line transform like so:

```scala
.filterNot { ste: StackTraceElement =>
    // When running under some profilers, the current stack trace might contain some bogus 
    // frames. This is intended to ensure that we don't crash in these situations by
    // ignoring any frames that we can't examine.
    (ste == null || ste.getMethodName == null || ste.getMethodName.contains("getStackTrace")))
}
```