Programs as Diagrams: From Categorical Computability to Computable Categories