Add BadUsername and use in is_username_available.
Use first to simplify testing suite.
Use proper casing for API in title.
Add __repr__ to Subreddit.

display_name is always set for Subreddits. If the subreddit_name
(which display_name is defined from) is not given on initialization,
it will be deduced from the url.
Add internal._to_reddit_list
Add subreddit_recommendations.
Use next instead of six.advance_iterator

next as a builtin function was added in 2.6. Since
the oldest version of Python PRAW supports is 2.6, there
is no reason to use six.advance_iterator over next.
Pylint fixes and improvements.
A bunch of smaller test improvements.

 * Use builtin all function for clarity.
 * Rename retval -> result for consistency.
 * Replace len(x) > 0 with len(x) in asserts.
 * Remove some unneded len.
 * Remove some unneded conversions from generator to list.
 * Fix change in 7009094 that broke a test.
 * Add variables un_pswd, other_user_pswd other_non_mod_name and
     other_non_mod_pswd. Use them where their value was given
     explicitly before.
 * Remove sort param in get_new test. With the splitting of the new
     listing into a new and rising listing this is no loner neccesary.
 * In get_mod_queue_multi use self.priv_sr over "reddit_api_test2" as
     this subreddit is also used elsewhere in the testing.
 * In test_scope_modlog give limit explicitly rather than relying on
     default. Otherwise a change in default or self.un preference will
     cause the test to fail. Set limit=50 for consistency.
Add UnauthenticatedReddit.get_rising
Note only self submissions can be stickied.

Thanks to u/rasherdk for discovering this.
Deploy 2.1.8