Don't ask about final newline, enforce it
flx and smex

flx for flex ido matching and smex for more civilized M-x