Random Colored Panels + Refactoring

- Add rectangle panels around all nodes
- Changed nodesList so no space is reserved in initial layout for
topology children
- Fixed icon, text, and link offsets so links are always pointing at
center of icon
- Fixed small typo in hypervisorBypassInterfaceService
- Added missing semicolon after nodeTypes
- Changed nodes so that each contains a reference to its own JSON and
use them to build a dictionary of nodes
- New utility functions populateNodesDictionary(), randomRGB(),
escapeRegExp(), getNonTopologyNodes(), and isTopologyNode()
Externalize and split up js code

All project js code is now declared under new versastack global
namespace.

Previous adminView module split up into versastack.model.js and
versastack.adminview.js (lowercased for consistent behavior across
filesystems) modules.

Majority of js code externalized for performance and maintainability as
per Yahoo developer guidelines
(http://developer.yahoo.com/performance/rules.html#external)

Some misc. name changes and other small changes
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
Clean up (and fix) versastack.adminview.js -- Part 2

In versastack.adminview.js:
- Fixed node and link networking so that the graph is working again
- Changed some constants for smoother expansion animation
- 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
- Fixed problems with variable shadowing where var l was used multiple
times
- Replaced all console.log calls to use console.log, console.info,
console.warn, or console.error as appropriate
- Created proper getGroupID(), getLinkID(), and getUID() functions that
can be used consistently
- Rewrote network() to operate top-down by iterating through topologies
then their children, rather than searching for the topologies
corresponding to random children, using new isTopology() and isChild()
functions
- Changed radius() so that topologies are bigger and stand out more
- Fixed issue where links were not centered on node circles
- Bounded x and y coordinates so that no nodes can go outside the
canvas bounds
- Updated section headers

In versastack.model.js:
- Changed child reference to parent id into a direct reference to the
parent node, which simplifies some code
Merge updated code from branch 'refactor' with working topology expansion code and substantial clean up of old code.