File upload via REST returns 403
I was missing the File Entity module. Installed it and was good to go. 

Also, was having trouble when using normal json format. Switched to hal_json and that got it.

It's also worth noting that using Base64.encode is unnecessary because FileReader does that for you. Also, you need to split off the file type from the returned data string, otherwise the file will be corrupted when you go to upload it.