`SELECT().DISTINCT(...)` differentiated into `.DISTINCT(...)` and `.ALL(...)` to support exlicit `ALL` clause
reorganized `DISTINCT`/`ALL` constant spacing for consistency
changed `F.func(..., DISTINCT=True)` syntax to `F.func(...).DISTINCT` and added `F.func(...).ALL` for completeness
refactored `ORDER BY` an `LIMIT` clause rendering from `SELECT` and `SelectSet` into `BaseSelect`
WHERE on a SELECT with no FROM promoted to runtime exception instead of assertion
provide context to `.count` and `.total_count` convenience methods