Port to LLVM/Clang SVN r210479

The clang::driver::Driver constructor no longer takes a default image
name.
Port to LLVM/Clang SVN r215430 (release_35)

Use std::error_code instead of llvm::error_code.  Use std::unique_ptr
instead of llvm::OwningPtr.  Use llvm_map_components_to_libnames instead
of llvm_map_components_to_libraries.
Port to LLVM/Clang SVN r215464 (trunk)

The clang::FrontendAction::CreateASTConsumer method now returns
std::unique_ptr<clang::ASTConsumer>, so update our override to return
the same type.  While at it, mark our declaration with 'override'.