Add Message Property and Some Cleanup

- Add a 'message' property to each pattern so that users will have more
information about the offense. Pattern search should also degrade
gracefully if the pattern is not sufficiently defined.
- Replaced some checks for undefined options with cleaner code.