Updated to meet specs

 - no longer changes input text
 - handles arbitrarily large N for encode/decode Caesar