Liberal Patrick Weiler holds onto West Vancouver riding after hard-fought campaign