Add definitions for the other standard modes
Allow default mode to be set
a typo in an explicit default mode definition raises

Seems like this is an area where you want to fail faster...
set :cfp as the default mode
extract the DSLish Modes stuff to a DSL class

This helps to simplify the previously-dual-purpose default method no end
Modality::Rules stores the mode name

I think Modality::Rules is going to find itself replacing Modality
fairly soon
Bring default / no rules behaviour into line with orignal

We're behaving as much like the old behaviour as possible
(which had the NoRules object, but didn't seem to have any code path
that resulted in it being returned). Now we have an explicit/implicit
default, then it makes sense to have NoRules returned as the last resort
if there are no defined modes
Switch to the mode definitions in config/modes.rb

This commit also removes the now-unused code in `modality.rb` and all of
`modality_test.rb`. I'll move up Modality::Rules to be Modality in the
next commit
Rename Modality::Rules to Modality
Bring the public API of NoRules into line

Basically, add the `#mode` method