Fix up Buffer's handling of all the encodings

Mild overhaul to finish up Buffer encoding work which was started in the ["Strings" pull request](https://github.com/tessel/runtime/pull/542) but wasn't really fully implemented or thoroughly checked over.

Highlights:

- adds utf16le encoding/decoding (which had been completely absent)
- improves ascii/binary/hex/base64 logic too
- generally cleaner in/out logic
*bump*

The trouble here is many-fold. Granted the current situation is quite gross, but has the following properties useful in practice:

- may never happen with UTF-16 specifically [assuming we stick with the 8-bit interal encoding], but the pattern it follows is set up so all the others can [at least in future] optionally just return the original buffer if the source is already also valid "thing being converted to"
- also encapsulates the size of the output buffer that will be needed — unless we just go with "the biggest multiplication factor any every need" or do the conversion in chunks, we'd need an extra function corresponding to every one of these converters that just returns the necessary output buffer size
- now, we do kind of need half of those for [Buffer.byteLength](http://nodejs.org/dist/v0.11.13/docs/api/buffer.html#buffer_class_method_buffer_bytelength_string_encoding) anyway, but overall *always* pre-allocating a buffer could lead to a performance hit in that right now we allocate a "maximum possible size" buffer and then return the real size once we've looped through. Pre-allocating the exact size — which if we're going to add these functions at least the half used by that Buffer method should be correct — means looping through once just to count [so basically going from `O(n)` to `O(2n)` which granted is still just `O(n)`…]

Anyway, all this to say: the way we are doing it is really gross (`if (outPtr != inPtr) free(outPtr)` gross) but it's already there with the UTF-8 logic — this patch just does it more often. Could we defer doing this the right to a future patch?