Use the NoValue helper.
Try to de-dup a the conditional AZ code a bit.

Not sure this really helps since now it is just unreadable.
Use the new abstract tag.
Fix the req link.
Pull the role stuff into a mixin.
Add the ELB hostname as an output for simplicity.
Remove the stuff thats in a mixin now.
Trying to improve support for public vs. private apps.