Recommend using portable std.ascii.newline for line terminator

Also document 'lines' constructor.
Note that readln() cannot support string terminators
Don't use std.ascii.newline with text mode
std.bitmanip BitArray refactor and various fixes
Merge pull request #2249 from Safety0ff/bitarrayrefact

std.bitmanip BitArray refactor
Merge pull request #2364 from ntrel/stdio-newline

[docs] Recommend std.ascii.newline for portable line terminator in std.stdio
basic definition of associative range
replaced aligns with corresponds,keyrange; valuerange; and range with byKey; byValue; and an implicit Inputrange,and made a guarantee that byKey and byValue can be zipped, at the request of Marc Schütz
isAssociativeRange only takes one argument now