Can't bend the arm properly
The technique you're using is to organicly bend joints. Since your character is pretty blocky, I guess you're trying to make the joints move in a more anorganic way (like robots, minecraft characters and so on).

I recommend disconnecting the lower arm from the rest of your mesh and assign it's vertex group to the corresponding bone with the value of 1 in the vertex tab. Maybe scale it down a little so you don't have overlapping faces.

If you were going for a organic look to bend joints, the weights are painted too sharp. I recommend painting with the "Average Brush" in Weight Paint Mode to even out the influence of your bones. Once you're happy with the result you can use the "Blur" brush to fine tune the result.