Swapped out XMLHttpRequest for a custom module

We made a module to encapsulate the logic that chooses the nodejs or browser dependency that actually downloads a file when the module is used.
Split the distribution of Filer into two files

The AMD-module system Filer uses can't handle require() calls that reference a node module. By creating two distributions we allow the node version to use a full implementation of RequireJS, which gracefully falls back to Node's require() when RequireJS can't find the module in its registered paths.
Added and fixed unit tests

Aside from testing our new module (network.js), we also had to add logic that would test Filer appropriately in both the node and browser environments.