Major rewrite of handle() to better facilitate lists within definition lists

The plugin now completely writes its own plugin calls.  Both DT & DD tags use
DOKU_LEXER_ENTER & DOKU_LEXER_EXIT states (rather than the previous DOKU_LEXER_MATCH).
This change allows the plugin to work better with DokuWiki's own EOL & paragraph
handling and avoids invalid html which could occur previously (e.g. when lists where
included within DD items).

PHP class code is also updated to use visibility properties.