decoder addition

adds Decoder.TryDecode, which allows attempting to decode an instruction from a byte array which may be longer or shorter than is required. Does not throw exceptions. Also allows attempting to decode within a byte array from an offset.