Could a Universal Turing machine be set up so that it is able to 'reprogram' itself to 'behave' like any specific Turing machine without using some 'outside' source of info to cause it to do this?
Turing machine is a formalized representation of the concept of algorithm (aka effective method). Why do we need a formalized representation? So that we can reason precisely about the thing and that's why Turing created this formalized representation to answer Hilbert question of decision problem.
A Universal Turing machine is a machine that can simulate any Turing machine i.e An algorithm that can simulate any algorithm. Intuitively it may seem that this algorithm that can simulate any other algorithm must be really complex BUT it turns out that this algorithm is really the dumbest algorithm possible. In Turing machine the "state transition table" is the logic of the algorithm and the state of the tape is the Input and Output of the algorithm. Now if I want to create a Turing machine that can simulate any algorithm than I could try to design a state transition table that has logic for every possible algorithm (e.g sorting, hashing, compression and on and on ...) but that is not feasible as the number of all algorithms is infinite. What about if we encode this state transition table as the input and the state transition table of the machine is designed such a way that its logic depends on the state transition table encoded in the input. In this way this single and quite simple Turing machine can simulate any other Turing machine.
So if an algorithm can not be 'inputted' to the Universal turing machine it is not computable , is this true?
I guess by 'inputted' you mean that the algorithm cannot be encoded as input to the UTM. Any algorithm can be encoded as input to the UTM the only requirement is that you should "know the algorithm first". If you don't have the algorithm then obviously the function is not computable .... yet :)