target binding overhaul

target bindings now separate classes based on target type, so no runtime
decision making needed

Added Debug friendly 'break on bind fail'