Only check for terminators in zero-result functions

Only zero-result functions may end with no terminator
instructions; the "return" is implied. All other
functions will be checked by go/types.
cmd/llgo-dist: allow building of llgo with static or shared LLVM

This change adds a "-shared" flag to llgo-dist, which tells the
tool to attempt linking with the LLVM shared library (as it did
before); otherwise, llgo-dist will attempt to link with the
static LLVM libraries (this is the new default).

If either mode fails, it will automatically switch to the other,
with a message indicating that it is doing so.