Shared Memory and User Input

Shared Memory objects have been added, as well as preliminary HID input(buttons only)

`g_button_reg` should likely be a union of BitFields, i.e.

    union {
        u32 hex;
        BitField<0,1,u32> a;
        BitField<1,1,u32> b;
        // etc
    } g_button_reg;