Load Balancing In Heavy Traffic: Theory And Algorithms