Enforce valid hostnames (minus uppercase) for app IDs

Marathon’s modified hostnames allow digits, dashes, dots, and lowercase
letters. Normal hostnames allow uppercase letters and are case
insensitive, but that would likely be awkward in Marathon's app naming.

This is a follow up to pull request #310.

This fixes #315 by adding UI validation for the updated hostname enforcement.