function E = bitreslice(A,b_old, b_new, echo_on)
Author: Damon Bradley
Purpose: A is an [M by N] matrix of integers. Implicit is each element's
representaiton in binary, which is b_old bits wide. Matrix E is output
which is an [M by L] matrix of integers, with the bits of A concatenated
column-wise and re-split into b_new bit-wide elements. The number of bits
per row, b_old*N must be evenly divisible by b_new to work.
A - An M by N matrix of unsigned integers
b_old - Number of bits to represent A, should be based on maximum value
b_new - New number of bits to slice each bit-concatenated row of A
echo_on - Choose 1 to display underlying bit representation. Don't specify otherwise
E - A new matrix, same number of rows as A, but whose elements
a new set of integers based on the concatenation of ALL bits
for every row, repackaged as elements "b_new" bits wide.
Re arrange the 4-bit elements of matrix A into a new matrix with 3-bit
elements. The product of the number of columns of A and how many bits
each element is originally represented with must be evenly divisible by
b_new, the new number of bits the output matrix elements are represented
1 4 7
2 3 5
3 3 0
'0001' '0100' '0111'
'0010' '0011' '0101'
'0011' '0011' '0000'
'000' '101' '000' '111'
'001' '000' '110' '101'
'001' '100' '110' '000'
0 5 0 7
1 0 6 5
1 4 6 0