We can't use `getCanonArch()` after all.

Under a Fedora 18 machine for which the `cpuarch` grain reports `x86_64`:

```python
>>> import rpmUtils.arch
>>> rpmUtils.arch.getCanonArch()
'ia32e'
>>> rpmUtils.arch.legitMultiArchesInSameLib()
['x86_64', 'amd64', 'ia32e']
>>> rpmUtils.arch.getBaseArch()
'x86_64'
>>>
```

Under a CentOS 6.4 for which the `cpuarch` grain reports `i686`:
```
>>> import rpmUtils.arch
>>> rpmUtils.arch.getCanonArch()
'i686'
>>> rpmUtils.arch.legitMultiArchesInSameLib()
['i686']
>>> rpmUtils.arch.getBaseArch()
'i386'
>>>
```

The only common recipe seems to be using `legitMultiArchesInSameLib()`
Use an alternative modules file on Arch

This fixes #5274 but more investegation wrt where this should
be and on what OSes/kernel versions needs investigation.
Add validation logs for the configs, fix #5271
Allow custom grain modules to override values defined in core

Fix #5254
Only care about sudo origin if calling fully authenticated

This makes Salt only pass the sudo reference down in the event that
the user being sudoed to is considered by salt to be a fully
authentecated user, fix #5245
Fix #5231
DOH! Fix #5281

I will scurry off to write more tests.....
Add tests to check cross minion validity in the mine

Tests for #5281
Lower data sent with master_opts
Fix #5124
Last one! Fix #5085
Add modulear_systems doc
Re fix #1264
Fix #5191
Switched to a fixed and more complete `OrderedDict` recipe. Fixes #4912.
copyedit modular_systems.rst

spelling/typos/homophones
run-on sentences
commas
grammar
rm duplicate entriesin dict literal, except for loop_interval

Because the 2 entries for loop_interval disagree on whether it's a float or an int.
Merge pull request #5311 from hulu/copyedit-modular

copyedit modular_systems.rst
Merge pull request #5312 from hulu/patch-42

rm duplicate entries in dict literal, except for loop_interval
Use detect_kwargs in runner, fix #5259