Foundations of Computability Theory