Make getLogger public and allow it to be overridden

Addresses #554. Here's how I'm using it:

```go
type logrusInfoWriter struct {
	target *logrus.Logger
}
func (l *logrusInfoWriter) Write(p []byte) (n int, err error) {
	l.target.Info(strings.TrimSpace(string(p)))
	return len(p), nil
}

// etc.

func getLogger(name string) *log.Logger {
	switch name {
	case "info":
		// Hijack stream to point to a different logger.
		return log.New(&logrusInfoWriter{Log}, "", 0)
	case "warn":
		// etc.
	}

	panic("Unknown logger type: " + name)
}

func init() {
	revel.GetLogger = getLogger
}
```

Total hack, but covers my needs completely. Feel free to discuss.