Yep, the BRDF needs both the PI and the division by NDotL, while the implementation in a standard shader doesn't need those.
Shaders do need NdotL. Division by PI should be precalculated and sent to the shader—IE the light values the shader receives should already have been divided by PI.
What's the computation for the X and Y parameters that BRDF Explorer uses for aniso distributions? Are they tangent/bitangent vectors?
Yes, but in screen space (in pixel shaders) they often resolve to the directions [1,0,0] and [0,1,0]. Remember, they depend on your eyes, not the orientation of the object.