About a particular use of hashing Look at the last problem on page 2 here,
http://www.cs.nyu.edu/~khot/CSCI-GA.3350-001-2014/sol3.pdf


All one wants to do is to convert a $x \in \{ 0,1\}^n$ into a $y \in \{0,1\}^k$ . Then just a linear transformation would have been enough. Why install this vector "b"? 
If $a_1,x_1,x_2 \in \{0,1\}^n$ and $b_1,y_1,y_2 \in \{0,1\}$ then why is demanding simultaneous satisfaction of the equations $a_1^Tx_1 + b_1 = y_1, a_1^Tx_2 + b_1 = y_2$ the same as claiming the simultaneous satisfaction of the equations, $a_1^T(x_1 \oplus x_2) = y, b_1 = y \oplus y_1$ ?( where $y = y_1 \oplus y_2$)
For your first question, the vector $b$ is necessary to make sure $\text{Pr}_{A,b}[\vec{a_1} x^{T} + b_1 = y] = 1/2$, for $k = 1$.

Otherwise, it is easy to see that $\text{Pr}_{A,b}[\vec{a_1} x^{T} = 0] = 3/4$ and $\text{Pr}_{A,b}[\vec{a_1} x^{T} = 1] = 1/4$, for $n=1$. By conditional probability and the law of total probability, we can get $\text{Pr}_{A,b}[\vec{a_1} x^{T} = 0] = 5/8$ and $\text{Pr}_{A,b}[\vec{a_1} x^{T} = 1] = 3/8$, for $n=2$. This approach can be generalized to arbitrary $n$.