Added additional precautions to declarators.

Alias and function declarators now print nonfatal warnings if such
alias and function has already been declared. The final output
refactoring is largely underway, endeavoring to both eliminate
print_string() and centralize exception printing logic into a new
print_exception() function.