feature(eapi6): add support for econf/einstall --docdir and --htmldir
style(eapi6): don't do unnecessary comparisions when PATCHES is null

Previously this would take approximately twice the time to determine
PATCHES wasn't specified at all which isn't great since a large
proportion of ebuilds in the tree won't use patches.

The current code now assumes that if PATCHES is defined it's either an
array (which it checks for) and if not it's a string. This could fail if
PATCHES is declared strangely in the ebuild (e.g. making it an
associative array) but we're not handling user foolishness for now.
feature(eapi6): initial einstalldocs implementation

HTML_DOCS support might be tacked on later if that becomes part of the
spec.
feature(eapi6): add global failglob setting support
feature(eapi-bash): add a general method for deprecating or banning fcns

This allows us to specify function names in BANNED_FUNCS or
DEPRECATED_FUNCS variables in the related EAPI file to easily show QA
warnings for deprecated functions or error messages for banned
functions. The alternative would be explicitly defining function
overrides for every function in the related EAPI file which is verbose
and annoying.
feature(eapi6): ban einstall