Add documentation on writing external pillars

Explain how an ext_pillar module works, the conventions for how
and when things are called, and what to return.

The explanation of what pre-existing data is passed to
ext_pillar( pillar, ... ) is based on the current code --- I'm not
sure if the current code is a guarantee that it will happen this
way in the future.
Change the documentation for how ext_pillar is called

Make it clear that the first argument passed is ``pillar``. Also
explain why it makes more sense to return a dictionary of just
the pillar values a particular ext_pillar module is changing or
adding, rather than returning the entire ``pillar`` dictionary.

Note: it isn't documented anywhere that you can use earlier pillar
dictionary values in an external pillar, although that is what the
code does.
Merge pull request #4318 from tlk2126/ext_pillar_documentation

Ext pillar documentation