It's all up to each app. For instance, on Twitter, you should go to that app's settings and find the Notification settings (if available, some apps don't allow you to set custom ones). Now, there are also 3rd party apps that you can download from the Play Store, like LightFlow, and override the system settings and take over stuff like the LED color, to let you know about a notification with different styles for different apps.
As for the heads-up notification, I know... Lollipop's notification system is a mess. I agree with you if you think so. It sucks. Period. That being said, you can either set priority notifications for some apps and hide others, or show none, or show all. The problem is that some apps, especially texting ones, set themselves as 'important' notifications, so the little, annoying banner pops up every time unless you select to display only priority notifications and you un-select that app to make it non-priority. There's also a 3rd Party app called Heads Down (I think) that doesn't require root and lets you get rid of those pesky heads-up displays and go back to the usual notification bar notification. You still retain lockscreen notifications, though (which you can disable in the settings).