Adding additional model loading functionality
(Porting over some functionality from my old fork)

This PR adds additional methods to `PreTrainedModel` for loading models for `state_dict`s. Currently, `from_pretrained()` does a lot of the heavy lifting, but is primarily designed to load from file/folders. This adds additional options for users with different model-loading workflows.
Hi Jason,

Can you give me a little more information on the model-loading workflow you are using so I can understand the whys and wherefores of these proposed modifications?<|||||>Hey Thomas,

Sorry for the delay. My thinking is this: the `from_pretrained` method current does two things: resolve the path/archive for loading a pretrained model, and the specialized model loading logic (e.g. handing the fact that the current model may have different heads from those in the loaded weights). My proposed change is to separate the two and allow the user to just do the second. 
This would be useful in cases where the user already has access to the `state_dict` in memory (e.g. if they have a different model saving workflow/format).<|||||>Hi Jason,
There is a `state_dict` option in `from_pretrained` that, I think, let you do just that!
See here for instance: https://huggingface.co/pytorch-transformers/main_classes/model.html#pytorch_transformers.PreTrainedModel.from_pretrained<|||||>Closing this for now. Feel free to re-open if the provided solution doesn't solve your problem, Jason.