Replacement grammar

Decodes messages given a set of string replacement rules. LINQ made this way too easy.   

Look at this beautiful line of LINQ:
```
var message = input.Take(input.IndexOf("")).Select(r => r.Split('|')).Aggregate(input.Skip(input.IndexOf("")).First(s => !string.IsNullOrEmpty(s)), (current, rule) => current.Replace(rule[0], rule[1]));
```