Explain the use of Go's reflection API for examining the type and value of variables at runtime?