[SPARK-2189][SQL] Adds unregisterTempTable API

This PR adds an API for unregistering temporary tables. If a temporary table has been cached before, user can unpersist it as well.
Because currently a single cached query plan can be shared by multiple tables:

```scala
testData.select('key).registerTempTable("t1")
testData.select('key).registerTempTable("t2")

cacheTable("t1")
println(isCached("t1"))  // true
println(isCached("t2"))  // true

unregisterTempTable("t2", unpersist = true)
println(isCached("t1"))  // false
println(isCached("t2"))  // false
```

Maybe we should unpersist by default? Thoughts?

(Agree with renaming to `dropTempTable`.)