Add support for loading animations and waiting

Added versastack.loading module to handle all loading related actions.

While loading JSON, a loading animation will now be displayed.
adminview will no longer try to display the graph until model is fully
loaded.

Added three preliminary loading gifs and sources.txt in resources
folder documenting icon credits and usage rights.
Merge cleaned up code from branch 'loader' into topology_expansion.
Change model and css in preparation for topology expansion

- Fixed bad references in graph.json
- Added css for leaf and hull elements to display.html
- versastack.model.js returns data with random group ids
Initial topology expansion code

Initial code that allows nodes to be grouped and expanded on click.

Still very messy with lots of hardcoding and repeated code -- will be
cleaned up later.
Clean up versastack.loading.js

In versastack.loading.js:

For some reason, all functions were assigned to variables previously
which is unnecessary; changed to all be normal functions.

Added section header comments.
Clean up versastack.model.js

In versastack.model.js:
- Updated comments and section headers, adding new comments and
removing old commented out code
- Replaced all console.log calls to use console.log, console.info,
console.warn, or console.error as appropriate
- Added error messages for cases where a variable == null but should
not be
- Replaced implicit if(variable) statements with explicit if(variable
!= null) since implicit version incorrectly does not execute when
variable is 0 or false, as per advice from
http://stackoverflow.com/a/15992131
- Split very long function processJSON() into processTopology() and
processLinks() functions
- Changed data model so that each node has a unique integer id instead
of a group number and topology members have a parent property that
references the topology id
- Changed a hardcoded prefix comparison in shouldBeDisplayed() to use
prefix hash instead
- Optimized array loops to save array.length value on array
initialization instead of recalculating each iteration as per
guidelines from
www.thinkful.com/learn/javascript-best-practices-2/#Optimize-Loops
- Changed findByName() to not automatically remove prefixes from names
so that it can be used more generically
- Changed name of mergeProperties() to mergeObjects() to indicate that
it can be used generically
- Changed hasType() to first check if object has a type property via
call to hasProperty() since any calling code must first perform the
property check anyway
- Removed all references to node.visible property which is no longer
used
- Changed versastack.model.data to directly return an object instead of
calling a function that returned the same object for simplicity

Very very minor changes to versastack.loding.js and display.html
Clean up versastack.adminview.js -- Part 1

versastack.adminview.js cleanup work in progress, part 1

In versastack.adminview.js:
- Organized variable declarations into more logical categories
- Moved line comments on charge, gravity, and distance settings into
block level comment
- Commented out unused k-value generated charge and gravity code
- real_source and real_target renamed originalSource and originalTarget
following example from Douglas Crockford js variable naming conventions
http://javascript.crockford.com/code.html
- net variable renamed map for clarity
- Part of network() function split into processPrevious()
- Two letter abbreviation variables gm, lm, nm, gc, gn, in network()
renamed as expanded groupMap, linkMap, etc. and variables nodes and
links renamed outputNodes and outputLinks for clarity
- Added radius(), isTopology(), and hasGroup() utility functions
- Removed unused randomRBG() and randomInt() functions