Add bin/buildout --version

Fixes https://bugs.launchpad.net/zc.buildout/+bug/309770
Refactored execute permission into one spot.

A fixed (0755) execute permission is used in two places, I refactored it into
one method. Bonus: this makes it easy to test the fix proposed in
https://github.com/buildout/buildout/pull/18
Added test whether scripts are made executable.

Note: includes if/else for windows.
Uses http://docs.python.org/2/library/os#os.access
Using distribute's way of chmod +x.

os.umask is a bit weird in that it *does* return the current umask,
but it has a required argument that it immediately sets as the new umask...
Weird. Distribute solves that by assigning a dummy value and re-setting
the umask to the original value.

The matching test verifies that it actually works.

Note that I use python 2.6+'s octal notation: 0o755.
Buildout 2 doesn't support python 2.5 anymore, iirc, so that's fine.
Add support to ignore sections conditionally to a Python expression.

Section titles can now have this form:
 [sectionname:Python expression] # optional comment

If the Python expression evals to False, the section will be ignored.

Expressions have some defaults to support common conditions such as:
 [sectionname: not windows] # ignore this section on windows

Section title lines in the traditional form are still supported of
course:
 [sectionname] # optional comment 
or
 [sectionname] ; optional comment
PEP8 changes for bootstrap.py

I changed a few things to allow for better pep8 compatability.
Merge pull request #77 from rvanlaar/patch-1

PEP8 changes for bootstrap.py
Merge pull request #75 from reinout/use-umask

Use umask when doing "chmod +x". Improved version of pull request #18
skip umask test on windows
Awful hack to to temporarily get around a test bug (test depends on
the current distribute version).
Made tests independent of distribute version.

Replaced the fixed distribute version number with the currently valid one by
just asking for the current version and inserting that in the various spots we
need it in this testfile
Merge pull request #78 from reinout/reinout-distribute-version-test-fix

Made tests independent of distribute version number
prep for release (and provoke travis)
prep for release.
Merge remote-tracking branch 'buildout/master' into header_expressions
Use more explicit variable names
Added test that verifies #79
Fixed #79

When generating a python interpreter script with an empty `eggs=`,
previously you'd get `sys.path[0:0] = [,]`, which means a syntax
error because of the dangling comma.
Removed buildout.dumppickedversions from the warning.

I *have* retained buildout.dumppickedversions in the doctest with
the qualification 'only part of it'.

Removing the warning *does* make it less obvious for the people
that use buildout.dumppickedversions in the way I thought it
was used most, but apparently the default behaviour of dumppickedversions
was otherwise.
Warn when using an outdated bootstrap that gives you setuptools

Fixes #82

Thanks Marius Gedminas for the fix I could copy/paste :-)

Note that there is no test for this as the test setup doesn't allow for it.
The error that this commit fixes, fixes an error that occurs at
easy_install.py import time, so the fix also has to be on that level, making it
hard to test.
I personally think it's ok like this... ;-)