बिना एक भी अक्षर खोए फ़ाइल को छोटा कैसे किया जाता है?: दोषरहित डेटा संपीड़न (Lossless Compression) के सिद्धांत और सीमाएँ