Makefile: improve repo creation target, avoid := notation

The := notation is problematic here since it causes the statements on the
right hand side to be dereferenced immediately even if the repo or .git
target was not specified.  When the source is checked out from a git clone,
the .gitrev file does not exist, but the '$(shell cat .gitrev)' sequence is
executed every time make is called and it produces an error message.  Also,
the '$(shell mktemp -d tmprepo.XXXXXX)' sequence is  executed every time
make is called, which creates a new unique tmprepo.XXXXXX directory each
time.

So, let's rework this target so that the := notation is avoided, and also
to make it a little more efficient by avoiding an unnecessary checkout of
the repository.

There are two functional changes: 1) the temporary directory will just be
called ".repo_tmp" and it will be overwritten each time 'make repo' is
called, and 2) the checked out branch will keep its default name rather
than adopting a new name 'working'.  The user can create a new branch if
they desire and the original remote branch state is already available in
origin/master.
Makefile: checkout all missing files for repo target

Rather than try to maintain a list of the file differences between the
git repository and the source distribution tarball, just get a listing from
git itself and use it to check out the missing files.
remove unused variable to avoid warning
Implementing module name parsing with os.path.
fix some HTML issues in annotation file

--HG--
extra : transplant_source : gx%EB%08%DA%5D%B2-lzq%ED%3A%A9Xn%B3%EAX%01
make code blocks open on first click instead of second

--HG--
extra : transplant_source : %C6%DAZ%C5%05%2A%ADhrA1%86X%84S%C2%17%23I-
minor code cleanup

--HG--
extra : transplant_source : %D7%EC%163%08%A9N%E1%94%95%97%3A.%E94%D0%7C%AE%F3%85
fix declaration of PyBuffer_FillInfo()

--HG--
extra : transplant_source : %83%FAO%836%1Dw%5B%E3%94%E1%E6%7F%0C%EF%D9E%DE%D2%A2
move misplaced PyObject_Format() C-API declaration to right .pxd file

--HG--
extra : transplant_source : Zp%DC%BB8%03%B2%D6%A3%09q%13%25%17%AD6%17%25%1FU
some missing math.h functions and macros in math.pxd

--HG--
extra : transplant_source : %D8%3C%96Q%8A%23%1E%F4%FF%3E%DF%7D%18%17%5E%00%12%C8%FCk
Some math.h fixes, c99 isX macros.

--HG--
extra : transplant_source : %A2%F5%D0%5C%3B%7E%E9%BC%A3s%29%BBr%D7%06N%BC%88%F4%BB
Fix several MS compiler warnings.

--HG--
extra : transplant_source : 1_%40L%92%DD%AC%FAM%9C%F5%92%80%D4%B3%BA%DEL%F2%D4
move some build docs from user guide to reference to reduce redundancy

--HG--
extra : transplant_source : a%5D%AC%9A%18%7B%DD%94%7D%20%22%CC%CB%D39%AE%10%C0%8FC
merge overview page from user guide into quickstart and delete it

--HG--
extra : transplant_source : p%B5S%9517%99%11%94%06%B9j%FC%1BZt%F28_%D5
move Cython tutorial from user guide to tutorial part

--HG--
rename : docs/src/userguide/tutorial.rst => docs/src/tutorial/cython_tutorial.rst
extra : transplant_source : %97%AD%B6%9D%2A%0F%11a-%9F%F2%C6%BBOe%95%CD%CAX9
Fixed IndexNode.is_lvalue

In C/C++, almost all index operator expressions return lvalues. We now
allow anything that doesn't look like it resolves to assigning to a
whole array object to be considered an lvalue.

Before this commit, using the index operator on containers that return
references would crash the Cython compiler.  run/tests/lvalue_refs.pyx
contains an example of code that previously crashed the compiler.

Author: Gerald Dalley
--dbg-outdir option: specify gdb output location (default os.curdir())
Add memory allocation from wiki.

--HG--
extra : transplant_source : %93%13%FC%AA%07x%7D%14%F7E%D8%C0%01%DC%40%1C%BF%0F%F6S
Added limitations from wiki.

--HG--
extra : transplant_source : %AE%AE%EB%26%11d%C3%C4%BD/e%F6%08%08%40z%DD%C4%D1%E0
Add testcase for cimport+alias+subclass bug

The test may require moving into tests/compile after the bug is fixed.