big improvements to the tokens storage

- new APISite._tokens property (for internal use)
  which holds tokens cached *by user*

- new APISite.tokens property (for external use)
  of TokenWallet type

- new APISite.preload_tokens() method for caching tokens
  - use action=tokens instead of action=query&prop=info&intoken=etc.
    when supported

- the APISite.token() method has been deprecated
  and replaced with the 'tokens' property

also added a very simple test

Change-Id: I805002455798843fbe77556d3a6134bc9434417e
Merge "big improvements to the tokens storage"