Armature problems

I’m having some problems making a basic rig. The big problem is that the joints get either a very ridiculous straw bend on them, or they have intersecting faces, which give a very funny render. I’ve read pretty much everything I can find on rigging, and it seems that this ‘bend’ is not covered in any of it. I have put this problem on the forums before and the response I get is usually just telling me to weight paint by hand (which I have done and redone several times) I’ve been working on it for a very long time, so could somebody please take a serious look at my blend file and help me fix it?

Here is the blend file
Test.blend (423 KB)

here are.

i disabled envelopes on the modifier, then added 2 vertex groups to the cylinder object.
then i assigned basic weights for the bones, 1.0 for all verts surrounding the bone.

after that to get a better deforms there are many different methods.
can switch on preserve volume on the modifier, this can help a bit.
can use constraints, key shapes, mesh deform cage, umm, extra bones.

Test_.blend (388 KB)