Modified debugger to allow for clients to emulate stepping

- Added line information to DebugBreak
- Added logic to fail adding a new breakpoint to an
  existing element that is already a DebugBreak
  this is useful for stepping in a client editor
  where the user is expecting to step line-by-line
  but the next line may be still in the same DebugBreak
  So this code will now refuse to insert the new breakpoint
  and throw a remote exception

*Note* 
This will not allow for setting nested breakpoints, like a breakpoint on a <#if>... and then try to add another breakpoint somewhere inside of that breakpoint, like 
```<#if>...
...${abc}
</#if>```

So I understand if you don't wish to merge these changes as it my cripple other debuggers.  We could update the API a bit to allow for nested breakpoints if we wanted to enable both behaviors.