Change DynaLoader to XSLoader.

Inheriting from DynaLoader means inheriting from AutoLoader, and this is
not helpful.
Allow debuggers to get the 'real' callsite.

The previous commit introduced a behaviour change: previously, the test
suite failed under the debugger, because a sub called from the debugger
would return a callsite somewhere in the debugger's guts. Changing to
caller_cx will properly skip those stack frames.

On the off-chance that someone might want that information, if callsite
is called in list context from package DB, return a 2-element list,
where the first element is the ordinary callsite and the second is the
real callsite of the current sub.
Merge remote-tracking branch 'origin/master'

Conflicts:
	Makefile.PL
Document the new DB behaviour.
Change the invalid PROTOTYPES line.
Merge remote-tracking branch 'rocky/master'

Conflicts:
	Makefile.PL
Qualify $DB::sub.

I'm not sure what's going on here... I'm sure I tested this version...
Merge pull request #3 from mauzo/master

Document and test the DB changes.

Pull requests are less error prone.

This code is not without problems:

```
$ perl -d -Mblib t/basic.t

Loading DB routines from perl5db.pl version 1.33
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

1..27
ok 1 - loading module
ok 2 - running import
ok 3 - Valid first call
ok 4 - Valid second call
ok 5 - Two separate calls
ok 6 - Nested callsite
ok 7 - Callsite defaults to level 0
ok 8 - Going too far returns empty list
ok 9 - Going too far returns undef
ok 10 - Nested callsite inside loop
ok 11 - Callsite inside two loops
ok 12 - Deeply nested callsite
not ok 13 - Sanity check (DB::sub was called)
#   Failed test 'Sanity check (DB::sub was called)'
#   at t/basic.t line 75.
#          got: '7'
#     expected: '2'
ok 14 - Calls with DB::sub
ok 15 - Nested calls with DB::sub
ok 16 - Nested calls with and without DB::sub
not ok 17 - Sanity check (DB::sub was not called)
#   Failed test 'Sanity check (DB::sub was not called)'
#   at t/basic.t line 84.
#          got: '3'
#     expected: '0'
ok 18 - Call from DB returns 2 values
ok 19 - First value is the same (no DB::sub)
ok 20 - Second value is the same (no DB::sub)
not ok 21 - Sanity check (DB::sub was called)
#   Failed test 'Sanity check (DB::sub was called)'
#   at t/basic.t line 93.
#          got: '4'
#     expected: '1'
ok 22 - Call from DB with DB::sub returns 2 values
ok 23 - First value is the same (with DB::sub)
ok 24 - Second value is different (with DB::sub)
ok 25 - Valid context in initial thread
ok 26 - Valid context in child thread
ok 27 - Parent and child contexts are different
# Looks like you failed 3 tests of 27.
Debugged program terminated.  Use q to quit or R to restart,
  use o inhibit_exit to avoid stopping after program termination,
  h q, h R or h o to get additional info.
  DB<1>
```

And worse:

```
$ trepan.pl t/basic.t
1..27
ok 1 - loading module
ok 2 - running import
ok 3 - Valid first call
ok 4 - Valid second call
ok 5 - Two separate calls
ok 6 - Nested callsite
ok 7 - Callsite defaults to level 0

Program received signal SEGV.
!! main::(t/basic.t:27)
my @toofar = callsite(1);
set auto eval is on.
(trepanpl):
```