Fixed the adjacent proc to correctly process diagonals checks (fix #3519)

Corrected the _adjacent_ proc to do _What It Says on the Tin_ (that fixes #3519) : 
>Adjacency (to turf):
>* If you are in the same turf, always true
>* If you are vertically/horizontally adjacent, ensure there are no dense border objects (e.g windows, fire doors, ...) 
>* If you are diagonally adjacent, ensure you can pass through at least one of the mutually adjacent square.
>        * Passing through in this case ignores anything with the throwpass flag, such as racks, and morgue trays _(that's only used in an hack for the firedoors)_

Examples of correct diagonal checks working :
![reachable](https://cloud.githubusercontent.com/assets/7117411/2796297/3829884a-cc0b-11e3-8885-84dc9254a2e3.png)
* case 1 : both ways to the radio are blocked by closed windows, so we can't reach it
* case 2 : one of the windows is open (density = 0), so there's a path to the radio : _grab it_ !
* case 3 : never realized it, but this configuration prevents you from getting the rods...

I found the name of the proc to be a little misleading : it should be view as something like _can_reach_.
Even the adjacent.dm intro comment goes that way

>Adjacency proc for determining touch range

>This is mostly to determine if a user can enter a square for the purposes of touching something.
>Examples include reaching a square diagonally or reaching something on the other side of a glass window.