msr-safe: Initial check-in

msr-safe is a module for "sanitized" access to CPU MSRs via a separate
msr device.  This initial check-in contains msr.c from RHEL kernel
2.6.32-358.6.1, with no changes, so it's not at all "safe".
Initial changes to actually create a separate msr_safe device

We change not only the names of the devices created, but also make sure to
register a dynamic major device number and create devices with that major.
Add whitelist support to read/write interfaces

A whitelist is added that specifies a list of MSRs, and associated read and
write masks.  When a read is performed, only the bits in the read mask are
returned to the user.  Similarly, when a write is performed, only the bits
in the write mask are changed (we read the MSR first to read the original
values).  If the masks have no bits set, EINVAL is returned, and no read/write
is performed.

Since we are now checking permissions at MSR read/write time, the capability
check is removed from msr_open.  Whitelist checking is not in place yet for
the ioctl interface, so we add capability checking there as well.

If the user has the CAP_SYS_RAWIO capability, the module allows complete MSR
access via both the read/write and ioctl interfaces.
test: simple test script of module functionality
Renamed msr-safe.spec.in to msr-safe.spec for the buildfarm
Fix bad makefile install rule
Add supplemental MSR list and potentially useful MSRs to whitelist
Remove extraneous whitelist entry
Add proper whitelist support to ioctl interface
Fix partial write masking

The code segments that combine the previously read msr value with the value
to be written were not properly masking the previously read value.  As such,
for any MSR where some but not all of the bits were allowed to be written,
if the bit's previous value was a 1, the user could only write another 1, not
a 0.
If some bits in a msr were write-masked and others weren't, the rout
Removed extraneous Makefile
Rewrote Jim F.'s Kconfig to match current design.
bumped the version in META
Replaced Jim's name with mine.

As this design is going to be significantly different
from Jim's, I don't want folks pestering him when it
breaks.  However, he does get credit for getting us a
working baseline that we can develop from.
Revert "Removed extraneous Makefile"

This reverts commit ddd667e0fb2b107d0e00e0c5977b68b041f933f6.
Stripped out all of Jim's whitelist code.
Added .gitignore
Avoiding merge.
Merge branch '2013-Oct-rc1' of /git/msr-safe into 2013-Oct-rc1

Conflicts:
	msr_safe.c
Don't need this file