func GetLanguageByModeline(content []byte) (language string, safe bool) {
	return getLanguageByStrategy(GetLanguagesByModeline, "", content, nil)
}
GetLanguageByModeline returns detected language. If there are more than one possibles languages
it returns the first language by alphabetically order and safe to false.
package enry
import (
	"bufio"
	"bytes"
	"path/filepath"
	"regexp"
	"strings"
	"gopkg.in/src-d/enry.v1/data"
)
const OtherLanguage = ""
type Strategy func(filename string, content []byte, candidates []string) (languages []string)
var DefaultStrategies = []Strategy{
	GetLanguagesByModeline,
	GetLanguagesByFilename,
	GetLanguagesByShebang,
	GetLanguagesByExtension,
	GetLanguagesByContent,
	GetLanguagesByClassifier,
}
var DefaultClassifier Classifier = &classifier{
	languagesLogProbabilities: data.LanguagesLogProbabilities,
	tokensLogProbabilities:    data.TokensLogProbabilities,
	tokensTotal:               data.TokensTotal,
}
func GetLanguage(filename string, content []byte) (language string) {
	languages := GetLanguages(filename, content)
	return firstLanguage(languages)
}
func firstLanguage(languages []string) string {
	if len(languages) == 0 {
		return OtherLanguage
	}
	return languages[0]
}