Add support for optional table attributes to CI_DB_forge::create_table()

Supersedes PRs #989, #2776
Related issue: #41
SQLSRV improvements

Mainly for performance (issue #2474), but also added a 'scrollable' configuration flag
and auto-detection for SQLSRV_CURSOR_CLIENT_BUFFERED (only available since SQLSRV 3).
Merge branch 'feature/dbforge_table_attributes' into develop
Add <button> to the list of 'naugthy' html elements in CI_Security::xss_clean()
CI_Security::_decode_entity() to replace dangerous HTML5 entities

Related to issue #2771
Fix #2836
[ci skip] AND -> &&
Righting a wrong in the Session library

 - Change userdata(), flashdata(), tempdata() to return all the respective data when no parameter is passed.
 - Revert the addition of all_flashdata().
 - Deprecate all_userdata().
 - Fix related changelog entries that were all inconsistent.
Merge branch 'develop' into feature/user-guide-cleanup
[ci skip] Update Session library docs