mv version to tulip/version.py

to avoid loading the tulip package when importing the version in setup.py, because it occurs before dependencies are installed.
This doesn't currently cause problems because __init__ defines __all__, instead of importing specific modules and sub packages.
However it may cause problems in the future, this change intends to address those in advance.

cf http://stackoverflow.com/questions/458550/standard-way-to-embed-version-into-python-package
retrieve commit hash from git repo in setup.py
Belatedly bump version number

This is in support of the practice of having the version number
in the repository be what it will be upon the next release.  In
particular, the first commit following a release should have the
version number bumped.  In a forthcoming merge, infrastructure for
appending commit hashes to version strings for non-release commits
will be implemented.
Merge branch 'master' into version

Conflicts:
	tulip/__init__.py

The only nontrivial part of this merge is changing occurrences
of the version 1.0b with 1.1a
Version suffix of -dev-{%H,Unknown} for non-release installations

The primary mechanism is a file named commit_hash.txt under tulip/
If it is empty, then the installation is regarded as a release, so
should have a regular version string.  If it is exists and is nonempty,
then its contents are taken to be the commit hash from which the
installation was made, and "-dev-%H" is appended to the version string,
where %H is the hash.  Otherwise (i.e., commit_hash.txt is missing),
"-dev-Unknown" is appended to the version string.

The manner by which tulip/version.py is imported in setup.py is
improved in this changeset.  It now relies on the standard imp package.
Ignore tulip/commit_hash.txt
bugfix: distinguish between tagged releases and missing git

Previously retrieve_git_info returned None in both cases, so an empty commit_hash.txt was created. Then version.py found that an empty commit_hash.txt existed, so it didn't append anything to the version number.
small edits in tutorial and decorated pwa.py so that relevant parts can be referred from the documentation
Merge branch 'master' into version
BUILD: More use-cases for version string generation

Now, missing .git directory implies that tulip/commit_hash.txt
is not touched.  The format of commit_hash.txt now allows blank
lines and lines beginning with # are comments (ignored).
BUILD: Ignore temporary file MANIFEST
BUILD: Explain version string generation in code comments
update outdated dev examples to transys api changes

type checking is better enforced now, so several check=False alternatives don't exist any more. Adding states and transitions and labeling them happens by calling the same methods and is more explicit now, so more readable (though a bit more verbose, but using keyword-arguments is much friendlier).
rename X0reach to mem

because it is more descriptive of that variable's role
bugfix: FSA.atomic_propositions shouldn't point to the alphabet
improve exception message for LabeledDiGraph untyped edge attributes
bugfix: states.initial not callable any more
bugfix: states.select_current has been deleted
doc fix: LabeledDiGraph.add_edge
DOC: Additions, updates to spec.form API docs