Added Gray Encoding for up to 4 bits. Do we need higher than that? See Hacker's Delight for info on Gray, including Decoding logic