Changed the macro-based exception boundary by a lambda-based one.

I removed the macros SOLARUS_LUA_BOUNDARY_TRY and SOLARUS_LUA_BOUNDARY_CATCH and replaced them by a lambda-based solution: LuaTools::exception_boundary_handle. I took the modern boundary design from this article: http://blogs.msdn.com/b/vcblog/archive/2014/01/16/exception-boundaries.aspx

This patch may also have fix a potential issue: one of the return statements was outside of the exception boundary try/catch block, but the macro solution couldn't catch that.