Buttons with icons were ~4px taller than the default buttons– I've added a check for props.icon and adjust the padding accordingly so that they are the same height (40px)
Added iconLeft/iconRight classes based on alignment to properly set margin between text and icon
Made a few more style modifications–