You said it .. bring on the quaternions, you really need them for a gluLookAt type of function. However, when your game has a constant up axis, the math is actually very easy.
1st / 3rd person cameras I personally see as a scripting job instead of a generic component, as every game requires a ( slightly ) different implementation. A camera component on the other hand is one of the first things I requested about two years ago when first starting out with ZGE
*Although with the recently added OnBeginRenderPass it has become very easy to implement your own camera management system.