#2054: Update exceptions to allow custom detail

This addresses the changes requested in #2054 and allows for custom messages that do not necessarily require a string formatter be present in the detail message.
Merge pull request #2055 from kevinlondon/patch-6

#2054: Update exceptions to allow custom detail