Fundamentals of Electromigration-Aware Integrated Circuit Design