Adding .ruby-version to gitignore
Starting in on some specs for the chat interface
Extracting chef indexing to its own class

This is to help clean up the very long handler and to make testing and
extensions easier.
Extracting some of the enhance logic

This refactor removes some of the enhance logic to a separate class.
I suspect this class will grow a bit more after I introduce the concept
of substitutions that need to be applied to the original message.
Fixing double enhance bug

The previous implementation would edit the message to enhance as the
message was being scanned for enhanceable text. This ended up resulting
in some strings being double enhanced because the replacement text
matched another enhancer's regex.

To handle this case, Enhancers now return Substitution objects, which
are applied after all Enhancers have had a chance to improve the
original message.
Simplifying render method

Since the render method is only called if a node is found to enhance the
text with, we can simplify it a bit.
Fixing application of substitutions

A few off by one errors and bad offset math was breaking the logic.
Merge pull request #4 from PagerDuty/fix_double_enhance_bug

Fixing double enhance bug