803757: Users should not be able to enter anything other than positive i...

...ntegers for sockets

858286: Type checking for product attributes

Both facts and product attributes are checked for typing where needed.
Configurable list added for each of fact names and product attributes.
Facts can be specifically typed as integer or positive integer.
Product attributes can be specifically typed as integer, positive integer, long, positive long, or boolean.
Unlisted facts or attributes allow strings as always.