Adding examples of randoming input

Adding three examples of using random. One which shuffles the object to
be tested but uses a deterministic test point, which can lead to
unexpected results. Another which shuffles the object to be tested and
then uses a randomized testing point, which leads to expected behavior.
A third example shows how to test an object that is not shuffled, and
then test specific values to test best, average, and worst cases.
Add .DS_Store to gitignore
Add example sort benchmark

This example shows a simple benchmark of sort vs sort_by.

Run this benchmark while your computer is in a clean state,
and then run while you are running lots of programs or browsing
websites that require a lot of computational resources. Compare the results.

Two example charts are included to provide an example of how these two
tests might produced results.
Example of Fibonacci benchmark

Three fibonacci benchmarks -- a correct, naive fibonacci implementation
with tests. An incorrect fibonacci representation that will fail tests,
and an optimized fibonacci implementation that caches results for later
re-use. Includes example charts for all examples.