Representation Theory of the Virasoro Algebra