func WriteReport(t interface{}) error {
	w := tabwriter.NewWriter(ReportWriter, 0, 8, 2, ' ', 0)
	fmt.Fprintln(w, "FIELD NAME:\tTYPE:\tENV:\tREQUIRED:\tVALUE:")
	if err := writeReport(t, w); err != nil {
		return err
	}
	return w.Flush()
}
WriteReport will take a struct that is setup for envstruct and print
out a report containing the struct field name, field type, environment
variable for that field, whether or not the field is required and
the value of that field. The report is written to `ReportWriter`
which defaults to `os.StdOut`. By default all values are omitted. This
prevents logging of secrets. To not omit a value, you must add the `report`
value in the `env` struct tag.
package envstruct
import (
	"fmt"
	"io"
	"os"
	"reflect"
	"strings"
	"text/tabwriter"
)
var ReportWriter io.Writer = os.Stderr