Fix stopping condition in euler.fubibacci

We can only use 'is' to check integer equality up to 256. Python stores
-5 through 256 in an array and point to them when used, but for other
numbers each int gets its own memory location. As 'is' compares by
memory location, after 256 it not longer correctly identifies identical
ints.
Add mod to euler.fibonacci fibonacci_generator

Adding an option argument "mod" that mods the numbers before computing
them. If we are only interested in a few of the right most digits, we
can mod off the rest without effecting the accuracy in those places.
This saves us a lot of computing time.
Add fibonacci_binet to euler.fibonacci

fibonacci_binet use's Jacques Philippe Marie Binet's closed form
solution.  Although this becomes horribly inaccurate after n~70, it is
useful if you only care about the left most digits.