Correct (hopefully) fix for autopm get/put

So it appears the problem was that usb_autopm_get_interface() will wake
up sleeping hardware, which isn't being allowed when called in this
context for some reason (maybe because it required process context or
maybe something else). However, we don't need this because there's no
way the device could have even be put to sleep yet, so I've replaced it
with usb_autopm_get_interface_no_resume(), which just increments the
counter to make sure it doesn't go to sleep until we've completed the
mcp2210_configure().
Replace deprecated EXTRA_CFLAGS with ccflags-y

As per Documentation/kbuild/makefiles.txt
Work-around for usb_autopm_get_interface() returning non-zero

Unfortunately, the contract for usb_autopm_get_interface() is not
spelled out with proper kerneldocs. However, we should assume that it
will return non-zero in case of failure and zero in all other cases.
Sadly, this contract is violated due to a change that allowed you to
know when you didn't need to actually restart anything (in the PM layer)
because nothing was asleep. This change accounts for this bug.

This should correct the remaining problems in
https://github.com/daniel-santos/mcp2210-linux/issues/5
Correct & optimize {un,}pack_uint() functions

It looks like these never got polished off after making them behave
correctly.  First off, these functions aren't the best candidates for
inlining -- they are called neither frequently, nor in often and their
implementation isn't quite trivial. However, the validation code that
assues that callers are not trying to use values that wont fit in 32
bits must be inlined or it will produce a false positive.

This patch separates the functions into an __always_inline stub and a
static (non-inlined) definition. This should shrink code size and
corrects https://github.com/daniel-santos/mcp2210-linux/issues/7.