Drop isnil. Nothing uses it, and enum classes do it better.
Remove automatic conversion between integer and double.

Instead, add double::to_integer to complement a new integer::to_double. This
was done because the integer<->double conversion could prove strange when
combined with an enum class.

Additionally, this feature is not, and never was recursable (a list of
integers would not be auto-converted to a list of doubles, for example). This
felt like more of a hack over time, and additionally felt rather useless.

Test removed from test/pass/sanity.ly.
o_assign -> o_fast_assign. o_{ref,any}_assign combined into o_box_assign.

This reflects the fact that the regular o_assign is very rare (only for
integer and double), and also simpler than any other kind of assign.

o_box_assign now handles simple ref/deref situations, as well as enum class
assignments and any assignments. The reason these were combined is that ref
assign is not a very common opcode (it will only trigger when assigning one
var to another var). It's not common because the interpreter folds down a LOT
of stuff to avoid having to write assignments.

This drops an opcode, simplifying the interpreter a bit, which is nice.
Debug: Remove now-unused local definitions.
for...in loops now use ... instead of .. to simplify the language.

Now, there is only '.' or '...'. The lexer also raises SyntaxError in the
event of getting '..' (with a message which implies that the user wanted ...
or . in case it's a typo).

Getting rid of a possible token is also nice. :)