split api.Camera off from api.Observer

improving separation between 3D world and 3D view related stuff and
2D-only stuff
make bin/cloc.sh use cloc on path instead of downloading it

I think the way I had it set up before was because Homebrew didn't
have cloc yet?  anyway, it definitely does now
upgrade to sbt 0.12.3
Merge remote-tracking branch 'origin/5.0.x'
put back a method I'd mistakenly thought was part of 3D stuff
Merge remote-tracking branch 'origin/master' into core

Conflicts:
	bin/cloc.sh
	headless/src/main/org/nlogo/agent/Camera.scala
	headless/src/main/org/nlogo/api/Observer.scala
imports cleanup in nvm.Instruction
fix ancient oops in create-link-with syntax

probably dates way back to when we were considering allowing links to
patches
change some "protected"s to "public"

they were interfering with my refactoring of the link creation
primitives, and besides protected is generally a smell anyway
DRY the link creation prims into one source file
convert agent.LinkManager to Scala
network extension: keep up with changes on master
LinkManager cleanup: eliminate separate LinkManager3D class
LinkManager: use Scala collections not Java collections
LinkManager: avoid using AgentSetBuilder in LinkManagerImpl

let other code decide what data structure it wants out!
LinkManager: misc cleanup
LinkManager: relocate tie code to TieManager
LinkManager: might as well put LinkManagerImpl in same source file
LinkManager: get directedness checking out of nvm.Instruction

it was just gross having it there
relocate some misc code to api package