Expose ability to all flags, switches, samples

Add new waffle functions all_flags(), all_switches(), and add_samples().  Move
the code from views.py, add top-level tests.

Basically moves the initial code from `_generate_waffle_js()` to separated functions in `waffle.__init__.py` allowing that ability externally.