Add more information on overriding providers

As noted in IRC, if you are using a custom linux spin or derivative, it
may not be apparent which provider to use when overriding providers in
the minion config file. This commit adds a massive table for the pkg,
service, user, and group providers which explains how they are used, to
help guide the user to the correct decision when specifying a provider
override.
Fix sphinx build warning
move dom import to try/except.

Windows barfs on from xml.dom import minidom
Add virtual function so it doesn't blow up windows
Add virtual function to not blow up Windows
Add csv to items that are blowing up Windows. :)
Change to HAS_ALL_IMPORTS for clarity
Merge pull request #6845 from UtahDave/fix_windows_blowups

Fix windows blowups from imports of unavailable modules
Merge pull request #6844 from terminalmage/docs

Add more information on overriding providers
Add lines for {net,open}bsdservice to State Providers doc

These lines were left incomplete in f15ce62, this commit finishes them.
Merge pull request #6847 from terminalmage/docs

Add lines for {net,open}bsdservice to State Providers doc
`communicate()` first returns `stdout` not `stderr`.