Implement active nav highlighting in Angular

Signed-off-by: Max Fierke <max@maxfierke.com>
Match YouTube, Vimeo, and image URLs server-side, and store them in the message model.

Signed-off-by: Max Fierke <max@maxfierke.com>