Return RuleService's type description if requested.

Note this is one of those commits that may not be extremely useful as
this service's ID is hardcoded, so the Server knows about the types
anyway.  So if space is important this should be reverted, and many
other commits can be reverted.
More verbose Service errors: provide DataType.
Ignore messages sent to ourselves.

Those may be results of errors in a rule execution for example, just
ignore them.
Add a few NaN checks, shave off a few bytes.

The reorganised switch() is about 200B smaller on AVR.