refactor LinkErrors.__init__

make errors_to_str a function; group attribute setting more closely
remove redundant docstring content
explain in docstring why LinkErrors exists
BuildRoot.verify: replace for+if with map+reduce
remove duplicate check on intersection of extern and broken

if an element of broken is in extern, then an element of extern is in broken
which we checked for above
make disjointness check into a function

also allows showing multiple overlapping values at once
BUGFIX: qualify errors with self.
move LinkError derived classes to link.py

also modify imports accordingly
BUGFIX: import LinkErrors from new location
move LinkError, LinkErrors to link.py
BUGFIX: add default value for reduce

else fails on zero length input
Don't import from conda_build.link at the top level

else failure due to circular import?
BUGFIX: fix import of LinkErrors

can't import at top level (due to circular imports?)
import is now from link, not build
BUGFIX: fix LinkErrors usage
BUGFIX: must now import is_linux where used
BUGFIX: must not import SlotObject