Add a few overlooked constraint checks in DSA
Rename interface AbstractMessage to Message
Refactor to isolate MaxSum and its related classes