Adjusted several enumerative functions BasisExchangeMatroid to separately handle the fringe
case where the ground set is empty.
Properly escape {} in sagedev.push()
adding _an_element_ method for Words
trac #16125 corrected doctests
Trac 15030: replace fast_float with fast_callable in 2D plotting
BasisExchangeMatroid.independent_r_sets() and .dependent_r_sets() now check if input r exceeds the full rank.
Corrected BasisExchangeMatroid.dependent_r_sets(r) to enumerate all r-sets if r > full rank.
Trac #16125: Implement method _an_element_ for Words

{{{
sage: W = Words(4)
sage: w = W([3,1,2,1])
sage: w in ZZ
NotImplementedError                       Traceback (most recent call
last)
[...]
NotImplementedError: please implement _an_element_ for Words over {1, 2,
3, 4}
}}}

URL: http://trac.sagemath.org/16125
Reported by: virmaux
Ticket author(s): Aladin Virmaux
Reviewer(s): Frédéric Chapoton
Trac #15030: Switch standard 2D plotting from `fast_float` to `fast_callable`

Switch the `plot` command to use `fast_callable` instead of
`fast_float`. This will make commands like `plot(abs(log(x)), x)` work.

URL: http://trac.sagemath.org/15030
Reported by: eviatarbach
Ticket author(s): Eviatar Bach
Reviewer(s): Ralf Stephan
Trac #16122: sage --dev push fails if commit messages contain {}

Pushing a commit whose message contains '{}' breaks a string format
command.

URL: http://trac.sagemath.org/16122
Reported by: saraedum
Ticket author(s): Julian Rueth
Reviewer(s): Volker Braun
Trac #16151: Making BasisExchangeMatroid fool-proof with user input sanity checks

Following creates a segfault:
{{{
from sage.matroids.advanced import *
M = BasisMatroid(matroids.named_matroids.Vamos())
len(M.independent_r_sets(9))
}}}
This is because of wrong user input (vamos matroid has only 8 elements,
so there is no independent set of size bigger than 8). This ticket is to
add sanity checks on user input to filter out such cases and raise
appropriate exceptions.

URL: http://trac.sagemath.org/16151
Reported by: Jayant
Ticket author(s): Rudi Pendavingh
Reviewer(s): Jayant Apte
Trac #15836: BasisMatroid.circuits() returns a malformed SetSystem when called on the empty matroid

The following produces an error:
{{{
from sage.matroids.advanced import *
M=Basismatroid(groundset=[], rank =0)
for C in M.circuits(): print C
}}}
Also, len(M.circuits()) is reported to be 1, whereas len(M.cocircuits())
is 0 and the latter is not malformed.

It is a bit of a theological issue, but I think we agree that the
matroid on zero elements has circuits nor cocircuits:
 in general a matroid of rank 0 on k elements has k circuits and no
cocircuits.

So I want to make sure that M.circuits() returns that empty SetSystem
(easy enough) but I also want to find out how it is possible that the
SetSystem becomes malformed in this case.

URL: http://trac.sagemath.org/15836
Reported by: Rudi
Ticket author(s): Rudi Pendavingh
Reviewer(s): Jayant Apte