changed collision poi to pos

makes more sense that way. `mid` means almost nothing
added TODOs for fixing collision code
Add EPSILON (a small value) to math

Technically, I think EPSILON is supposed to be "the smallest possible
value greated than but not equal to 0", but for my purposes, it's fine
to just set it to "a really small value that isn't noticeable by the
player." I'm mosty just going to be using it to TRY to make up for
floating point loss of precision, especially collisions.
Fix collision handler to account for normals
Change that garbage `xdir` and `ydir` to `normal`
Fix fake_line_editor wrt vertical terrain normals
Fix comment
Fix fake_line_editor wrt horizontal terrain normals
Fix incorrect argument to handle_collision_results
Change incorrect `horizontal` var to `vertical`
Merge branch 'dev' into topic/issue5
Fix collision everything

sorry, I know "flash of brilliance" commits are frowned upon, I'm just
happy it FINALLY works and way too lazy to do a proper commit
Merge branch 'topic/issue5' into dev