Modified extension checking

Removed concept of 'private' extension.  In theory, all extensions are
private if not stored somewhere public (e.g. public GitHub repos).
All extensions will now live in lib/extensions as submodules.  We may
have to edit this script a little more to ensure that everything works everywhere.
Cleaned up manifest parsing

Moved additional operations outside of the try-catch.  They shouldn't
cause errors, but you never know what could eventually end up in there.
Cleaned up a few other constructs

Converted pointless _.reduce statements to use Array.join instead.
Combined a couple of if statements that both checked the same thing.
Cleaned up whitespace in variable declarations
Switched to named functions instead of variable assignment
Fixed path in build_all to point to the correct directory

Extensions now live in lib/extensions and there's only one kind of them
Stylistic updates

Converted variable assignments of anonymous functions to named
functions.
Removed a dangling comma
Whitespace cleanup
Reverted named functions to variable assignments

Apparently, that's a no-no in strict mode...
Fixed some more whitespace while I was at it.
add xcore build script travis
travis init dubmodules recursive