The bug is in how you update the shader uniforms. Specifically, the loop at Renderer:242 is only updating the skeleton's first bone, because Shader::createProgramAndLoadUniforms() is only registering "bones[0]" in the uniforms HashMap. I implemented a hacky fix by replacing Shader:176 with:
if (a.get(0) != 1)
addUniformArray(name.substring(0, name.indexOf('[')), a.get(0));
else
addUniform (name);
You should now be able to see the worm animating, but in the opposite direction relative to the skeleton. To fix that problem, I removed ".invert()" from MeshResource:137.
Finally, a performance tip: The loop at Renderer:242 should be replaced with a single call to glUniformMatrix4fv. This function is able to upload multiple matrices to a matrix array uniform. You should refactor your code so that the entire skeleton pose is uploaded with one call, using the location of bones[0].