_ is a variable name used by programmer convention as a throwaway variable.
Variables holding values you don't care to reuse are named _ for convenience (other programmers can at a glance know that a value stored in a variable named _ will be discarded).
It could be any other valid variable name, there's nothing special about the name of the variable itself other than programmers know the value will not be used further on.
As to your first question value gets assigned the result of the logical operation on the right.
http://www.lua.org/pil/3.3.html