forms: Fix ambiguous id / value for typeahead

If a dynamic list is displayed as a typeahead box, the value, when saved,
will be confused with the corresponding ID field for the list. MySQL
supports numeric comparison between the INT id column and the textual value
column. Therefore, if a typeahead field has the value of '01 - GooGoo', then
record will match the ListItem<id=1>, regardless of which list the item is
defined for.

This patch resolves the issue by submitting the ID number of the list
selection in the HTTP form.
Double check value entered in typeahead fields

If the text does not match the value on record in the custom list, then the
value entered in the field cannot be accepted.

NOTE: This may have unintended i18n consequences, where there are varying
ways to write a letter in Unicode which may be rendered the same but will
not be correct with a string ==.
Merge pull request #422 from greezybacon/issue/numeric-typeahead-values

forms: Fix ambiguous id / value for typeahead

Reviewed-By: Peter Rotich <peter@osticket.com>