Don't warn on missing message bodies

A message can be blank if it has an attachment
Switch to bower dependencies

Checks in only the files we actually need from bower_components.
Grunt preen and concat

Set up grunt with tasks for:
  * preen - deletes unused files from bower_components, configured in
      bower.json
  * concat - concatenates preened bower components, configured
      automagically from the preen config

It's worth noting that this setup assumes the order of files within a
package doesn't matter. This is usually true since we often include only
one file from the package.
Pass protobuf attachment ids as strings

Latest protobuf.js requires that we pass in the sign value when making
longs from strings, ex: dcodeIO.Long.fromString(id, true);

However, it does the string->long conversion automatically if its given
a string for a fixed64 field, so we can pass our string ids right in!
ftw
Use jquery with native transport support

The jquery mainline is lagging on support for responseType:
'arraybuffer', an XHRHTTPRequest Level 2 feature (whatever that means).
We use this responseType to transfer attachments.

I rebased https://github.com/jquery/jquery/pull/1525 on the 2.1.1
release and cut 2.1.1-ajax-nativetransport in my own fork.
Switch mocha and chai to bower components
rm old jquery
Add mustache to bower