First Principles Studies of Electrocatalysis: From Methodology Development to Computational Design of Bi-Functional Catalysts with Improved Performance