Improve Meteor.Error

- Capture stack traces on server (Meteor.Error objects are only created on the client, not thrown)
- Set a message
- Improve inheritence pattern

Before: (note that the stack trace shows the line in which Meteor.Error is defined, not where it got thrown)
===
- exception - message
Error
    at app/packages/livedata/livedata_common.js:143:26
    at /private/var/folders/tp/sc9b5w7n2qndz3chpmktwy_w0000gn/T/meteor-test-runikymph/.meteor/local/build/server/server.js:282:7
    at Array.forEach (native)
    at Function._.each._.forEach (/Users/avital/meteor/dev_bundle/lib/node_modules/underscore/underscore.js:79:11)
    at run (/private/var/folders/tp/sc9b5w7n2qndz3chpmktwy_w0000gn/T/meteor-test-runikymph/.meteor/local/build/server/server.js:227:7)

After:
===
- exception - message User validation failed [403]
Error: User validation failed [403]
    at app/packages/accounts-base/accounts_server.js:164:13
    at Array.forEach (native)
    at Function._.each._.forEach (app/packages/underscore/underscore.js:79:11)
    at Object.Accounts.insertUserDoc (app/packages/accounts-base/accounts_server.js:162:5)
    at Object.Accounts.updateOrCreateUserFromExternalService (app/packages/accounts-base/accounts_server.js:264:21)
    at null.func (app/packages/accounts-base/accounts_tests.js:18:28)
    at app/packages/tinytest/tinytest.js:299:16
    at app/packages/meteor/timers.js:54:36
    at _.extend.withValue (app/packages/meteor/dynamics_nodejs.js:31:17)
    at f (app/packages/meteor/timers.js:12:51)
Expose Meteor.Error stack traces when thrown from method stubs in Firefox