Read encoded with base64 user data

This allows users of CloudSigma's VM to encode their user data with base64.
In order to do that thet have to add the ``cloudinit-user-data`` field to
the ``base64_fields``. The latter is a comma-separated field with
all the meta fields whit base64 encoded values.
initial commit for status
merge from trunk
possibly functional start testing
fixes from testing, force symlink
add doc/status.txt
fix end/start in doc
minor cleanups
fix write_json call
be atomic when writing status files
netinfo.py: fix regression causing ubuntu to show 'addr:v.x.y.z'

after freebsd merge, ubuntu shows addr:v.x.y.z instead of v.x.y.z for the
ipv4 address.  This should fix that by just skipping the 'inet' (or inet6)
token if the next token starts with 'addr:'.
SmartOS: do not run on arm as dmidecode causes problems

See LP: #1243287 for more information, but the easiest thing to do
here is just not run smartos on arm.
pep8 and pylint
AltCloud: do not run dmidecode on arm32/arm64 because it leads to kvm crash

See LP1243287 for more information
AltCloud: to not run dmidecode on arm systems.

As with SmartOS change earlier, running dmidecode on arm will crash kvm.
So instead of doing that, just return UNKNOWN which will cause this
data source to not activate.
AltCloud: fix test failures related to new arm-specific behavior
test_altcloud: fix altcloud tests when running on arm

Similar test-hack as the SmartOS one.
Here we just pretend that we're running on x86_64 so as to avoid
re-writing the tests to expect otherwise on arm.
tools/make-tarball: add ability to include uncommited changes

if you have UNCOMMITTED=1 in environment then the tree will
contain uncommitted changes.
distros/freebsd.py: fix regression due to previous pylint cleanup
cc_seed_random: fix bug and support pollinate command

there was a bug that prevented seeding of /dev/urandom from metadata provided
by the datasource unless the user provided random_seed config.
This should, instead, be the default behavior.