What are the key differences between Agile and Waterfall methodologies in software development, and what are the advantages and disadvantages of each?