Allow for a returncode to be set

This allows for a unix style return code to be set on function
calls, this allows for functions to set a failure relative to the
function call itself. AKA, this can flag a failed highstate
and flag it with a mapping to a specific defined value
Add initial retcode vars to state execution module
Start logging to the console as soon as possible.

Besides having a null logging handler which fixed several annoyances, we now added a temporary stream logging handler.
We did not detect the need for this temporary logging handler in salt, but projects making use of salt, for example salt-cloud, and because of how our parsers system works, would not get some useful logging output because it was not yet setup when needed.

So, logging now works(gets setup) in the following steps.

* Null logging handler right at import time. (No more, no handler for blah)
* Temporary logging handler. If console logging is supposed to happen, a temp logging handler will be setup right after arguments/options from the console are parsed(respects `-l <log-level>`), but it still does not know about any settings from the configuration files.
* Proper console logging is setup. Respects the console parsed options and also the configuration files. (Null and temp logging handlers are removed/deleted)
* Proper file logging taking into account the options set in the configuration files.
fix lost import
Merge pull request #4247 from giantlock/develop

Fix lost import.
Adding raid.create function to mdadm module.
Mirror salt.utils.pydsl.StateDeclaration.__getattr__ as __getitem__

This is helpful e.g. in top.sls files where non-keyword like attributes
of the state('base') object often get accessed. This little patch allows
to write things like:

  state('base')['*'].foo
forgot to uncomment the rest of the code.
The pidfile is now written prior to Minion init so the process can be managed during the init phase.
Fixed typo

some issues remain - may only be with windows installer build though
Merge pull request #4249 from Katafalkas/raid.create_to_mdadm_module

Adding raid.create function to mdadm module.
Update formatting in the docstring
Merge pull request #4253 from joehealy/issue4248

Fixed typo
Fix typo in group_info docstring
Merge pull request #4257 from benhosmer/develop

Fix typo in group_info docstring
Merge pull request #4246 from s0undt3ch/hotfix/start-logging-soon

Start logging to the console as soon as possible.
Merge pull request #4250 from spacedentist/develop

Mirror salt.utils.pydsl.StateDeclaration.__getattr__ as __getitem__
add docs for new pillar and tops modules
fix inconsistency in modules/service.py docs
fix inconsistency in modules/service.py docs (for real)
Enforce a timeout (#3431) even if you get an event every time you look

If you have a fairly busy event system (lots of minions) you will always get an event ever time that you look. This causes the tag check to catch it and do a continue, so you (effectively) get stuck reading all the messages on the event bus indefinetly-- which causes the timeout to never be enforced