Add field validation

Add field validation, this will highlight things red when the values are
invalid. The invalid values will not be sent in updates, but other
fields can still be edited and updated.
Make sort more stable

This changes the ordering of expense entries from date / time / random
to date / time / amount / location. Location is the only stable value
that we can rely on to make our sort consistent.
Change table text highlight to be more visible

The previous color was barely visible.